0

我需要弄清楚如何在 mongoid 中最好地建模,我有一个画廊模型和一个图像模型。我需要能够让图像能够在多个文档中被引用,并且我需要每个画廊都允许在画廊中对图像进行排序。在 mysql 中,我会使用连接表来执行此操作,但我似乎无法弄清楚如何最好地使用 mongodb/mongoid 来执行此操作。任何帮助将不胜感激。

4

1 回答 1

0

has_and_belongs_to_many,这里不需要连接表。在 mongoid HABTM 中,两边都存储了 id 数组。所以如果你定义:

class Gallery; has_and_belongs_to_many :images; end
class Image; has_and_belongs_to_many : galleries; end

您将拥有image_ids图库文档和gallery_ids图像文档。也可以对图库中的图像进行排序,gallery.images这是一种关系代理,您可以将更多条件链接到该关系代理以过滤/排序结果:

gallery.images.desc(:updated_at)
gallery.images.asc(:user_id)
gallery.images.asc(:my_sort_order_from_drag_drop)
于 2012-10-20T23:01:10.630 回答