我计划使用 mongoDb 构建 Rails 应用程序,但我不知道我是否能够使用活动记录关联,例如多对多等?另外,当我将 mongoDb 与 Rails 一起使用时,我是否将 Active Record ORM 替换为 mongoDB 的其他 ORM。 抱歉,如果问题很愚蠢,我只是从未在 Rails 中使用过 mongoDB (noSql)。
我相信您可以使用 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/
ActiveRecord 不适用于 Mongo。您想要使用的是 Mongoid,它或多或少相当于 Mongo 的 ActiveRecord。
当使用 Mongoid 作为 ODM 而不是 ActiveRecord 作为 ORM 时,您将无法使用 ActionText、ActiveStorage 和 ActionMailbox,因为它们由于依赖 ActiveRecord 而无法与 Mongoid 一起使用,如此处所述。
如果您仍然想使用 ActiveRecord 的这些和/或其他功能,您可能需要尝试本教程,它仅依赖于 gem 'mongo' 作为数据库驱动程序,而不是删除并替换其中一个核心Rails 的组件。