与mongoid的多对多关系

时间:2014-08-08 00:07:39

标签: mongodb ruby-on-rails-4 mongoid

我想知道如何与mongoid做多对多的关系。这是模型的直观表示,其中小的是连接表:

http://i.imgur.com/lJxoRSb.jpg

我使用RoR设置了我的模型(作为示例):

class Event
  include Mongoid::Document

  field :name, type: String
  field :place, type: String
  field :when, type: String
  field :price, type: Integer
  field :participants, type: Integer
  field :short_description, type: String

  has_many :users
  #has_many :users, :through => :user_events
end

我需要将具有兴趣模型的用户模型加入事件模型(如果可能的话)?我知道mongoid不是最好的选择,但我坚持使用它。

提前致谢!

1 个答案:

答案 0 :(得分:0)

尝试以下方法:

embeds_many :user_events

另见http://mongoid.org/en/mongoid/v3/relations.html#embeds_many

不要在MongoDB中使用连接表,而是使用嵌入对象/引用的数组。 MongoDB有数组值,利用它们!

通过多对多关系,您可以选择将引用放在第一个集合或第二个集合上,或者放在两者上。如果您在两个集合中都引用了引用,则必须根据应用程序的需要自行更新以确保一致性。