如果我将 MongoDB 与 Rails 结合使用,我可以使用 Active Record 关联吗?

问题描述 投票:0回答:3

我计划使用 mongoDb 构建 Rails 应用程序,但我不知道我是否能够使用活动记录关联,例如多对多等?另外,当我将 mongoDb 与 Rails 一起使用时,我是否将 Active Record ORM 替换为 mongoDB 的其他 ORM。 抱歉,如果问题很愚蠢,我只是从未在 Rails 中使用过 mongoDB (noSql)。

ruby-on-rails mongodb ruby-on-rails-4
3个回答
5
投票

我相信您可以使用 mongoid,它作为 ODM - 对象文档映射器。

取自 mongo 文档

您可以定义关联,将子文档存储在与父文档不同的集合中,如下所示:

 class Band
  include Mongoid::Document
  has_many :members
end

您还可以定义关联,其中关系嵌入到父级中,如下所示

class Person
  include Mongoid::Document
  embeds_many :addresses
end

查看此处的文档了解更多信息 - https://docs.mongodb.org/ecosystem/tutorial/mongoid-relations/


3
投票

ActiveRecord 不适用于 Mongo。您想要使用的是 Mongoid,它或多或少相当于 Mongo 的 ActiveRecord。


0
投票

当使用 Mongoid 作为 ODM 而不是 ActiveRecord 作为 ORM 时,您将无法使用 ActionText、ActiveStorage 和 ActionMailbox,因为它们由于依赖 ActiveRecord 而无法与 Mongoid 一起使用,如此处所述。

如果您仍然想使用 ActiveRecord 的这些和/或其他功能,您可能需要尝试本教程,它仅依赖于 gem 'mongo' 作为数据库驱动程序,而不是删除并替换其中一个核心Rails 的组件。

© www.soinside.com 2019 - 2024. All rights reserved.