我想知道如何与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不是最好的选择,但我坚持使用它。
提前致谢!
答案 0 :(得分:0)
尝试以下方法:
embeds_many :user_events
另见http://mongoid.org/en/mongoid/v3/relations.html#embeds_many
不要在MongoDB中使用连接表,而是使用嵌入对象/引用的数组。 MongoDB有数组值,利用它们!
通过多对多关系,您可以选择将引用放在第一个集合或第二个集合上,或者放在两者上。如果您在两个集合中都引用了引用,则必须根据应用程序的需要自行更新以确保一致性。