Ruby on rails 3 正确的建模方法在mongoid中有很多贯穿样式的关系?

Ruby on rails 3 正确的建模方法在mongoid中有很多贯穿样式的关系?,ruby-on-rails-3,mongoid,Ruby On Rails 3,Mongoid,我需要找出如何在mongoid中对此进行最佳建模,我有一个图库模型和一个图像模型。我需要能够有图像能够在多个文档中引用,我需要每个图库允许在图库中对图像进行排序。在mysql中,我会使用连接表来实现这一点,但我似乎不知道如何最好地使用mongodb/mongoid实现这一点。任何帮助都将不胜感激 拥有且属于多个,此处不需要联接表。在mongoid中,HABTM在两侧存储ID阵列。因此,如果您定义: class Gallery; has_and_belongs_to_many :images; e

我需要找出如何在mongoid中对此进行最佳建模,我有一个图库模型和一个图像模型。我需要能够有图像能够在多个文档中引用,我需要每个图库允许在图库中对图像进行排序。在mysql中,我会使用连接表来实现这一点,但我似乎不知道如何最好地使用mongodb/mongoid实现这一点。任何帮助都将不胜感激

拥有且属于多个
,此处不需要联接表。在mongoid中,HABTM在两侧存储ID阵列。因此,如果您定义:

class Gallery; has_and_belongs_to_many :images; end
class Image; has_and_belongs_to_many : galleries; end
您将在图库文档中有
image\u id
,在图像文档中有
gallery\u id
。也可以在图库中对图像进行排序,
gallery.images
是一个关系代理,您可以链接更多条件以筛选/排序结果:

gallery.images.desc(:updated_at)
gallery.images.asc(:user_id)
gallery.images.asc(:my_sort_order_from_drag_drop)

但在这种情况下,如果我需要为每个库单独排序(两个库中的图像需要为每个库单独排序编号),我认为这样做行不通。我想我必须求助于第三个表,类似于联接表,但我想我可以在库中嵌入排序表。是的,在这种情况下,在库中嵌入合并文档将是最好的选择。如果你这样做的话,你必须注意不要对画廊图片进行n+1查询。