如何在mongodb模型和活动记录模型之间创建has_many,has_and_belongs_to_many,belongs_to等关联。我有一个使用mongoid的课程Item
,我有另一个继承自ItemType
的课程ActiveRecord
class Item
include Mongoid::Document
embeds_many :extra_fields, class_name: "ItemType"
end
class ItemType < ActiveRecord::Base
belongs_to :item
end
由于
答案 0 :(得分:1)
在mongoDB中references_many
和referenced_in
等于has_many和belongs_to。还有另一种使用embeds_many
和embedded_in
在mongoDB中实现has_many和belongs_to关系的方法。
如果您想单独获取儿童的记录,那么您应该选择references_many
和referenced_in
。如果孩子总是只带父母,那么你应该去embeds_many
和embedded_in
。
如果embeds_many
和embedded_in
子节点在mongo对象中与父节点相同,并且在references_many
和referenced_in
的情况下,则存在与子节点和父节点不同的mongo对象参考密钥。