Gag*_*gan 3 sorting model mongoid
我一直在用mongoid存储数据.我有一个场景,我必须根据他们的家属数量对父母进行排序.我的模型很简单:
父模型references_many dependents stored_as => array
依赖模型reference_many父项stored_as => array
我不想遍历父节点,找到dependents的数量,将它们存储在一个数组中并将它们转储到我的视图中.
我需要的是只用一个查询根据家属的数量对父母进行排序.那可能吗?
谢谢.
您必须添加一个字段,其中包含受抚养人数的计数,并通过回调使其保持最新.就像是:
class MyModel
include Mongoid::Document
references_many :things
field :thing_count, :type => Integer
before_update :set_thing_count
def set_thing_count
self.thing_count = self.things.count
end
end
Run Code Online (Sandbox Code Playgroud)
那你的排序就是:
MyModel.asc(:thing_count)
Run Code Online (Sandbox Code Playgroud)
Mongoid还没有为排序提供良好的查询机制,但添加非规范化计数字段非常简单,并且可能更好地提高性能.希望这可以帮助!