在mongodb和活动记录之间创建关联

时间:2014-12-31 06:10:01

标签: ruby-on-rails mongodb activerecord

如何在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

由于

1 个答案:

答案 0 :(得分:1)

在mongoDB中references_manyreferenced_in等于has_many和belongs_to。还有另一种使用embeds_manyembedded_in在mongoDB中实现has_many和belongs_to关系的方法。

如果您想单独获取儿童的记录,那么您应该选择references_manyreferenced_in。如果孩子总是只带父母,那么你应该去embeds_manyembedded_in

如果embeds_manyembedded_in子节点在mongo对象中与父节点相同,并且在references_manyreferenced_in的情况下,则存在与子节点和父节点不同的mongo对象参考密钥。