我的模型Person
有很多Comments
如何按comments
像
这样的东西Person.desc(: “comments.count”)
答案 0 :(得分:1)
你不能同时使用两个集合,所以你需要Person
中的某些东西可以排序。通常的方法是使用计数器缓存来缓存每个Person
中的注释数。你会有这样的事情:
class Person
include Mongoid::Document
has_many :comments
end
class Comment
include Mongoid::Document
belongs_to :person, :counter_cache => true
end
:counter_cache => true
的{{1}}选项会向belongs_to
添加comments_count
字段,其中包含缓存的评论数。
获得计数器缓存后,您可以说:
Person
进行排序。
您需要使用Person.reset_counters
或Person#reset_counters
手动初始化计数器,以便开始使用。
答案 1 :(得分:-1)
查看mongo文档中的orderby功能:http://docs.mongodb.org/manual/reference/operator/meta/orderby/