Mongodb 按子文档数排序mongoid
我有一个有很多评论的模范人物 如何按评论数对人员集合进行排序 差不多 Person.desc:comments.countMongodb 按子文档数排序mongoid,mongodb,mongoid,Mongodb,Mongoid,我有一个有很多评论的模范人物 如何按评论数对人员集合进行排序 差不多 Person.desc:comments.count 看看mongo文档中的orderby功能:您不能同时处理两个集合,因此您需要亲自进行排序。通常的方法是使用计数器缓存来缓存每个人的评论数量。你会有这样的东西: class Person include Mongoid::Document has_many :comments end class Comment include Mongoid::Document
看看mongo文档中的orderby功能:您不能同时处理两个集合,因此您需要亲自进行排序。通常的方法是使用计数器缓存来缓存每个人的评论数量。你会有这样的东西:
class Person
include Mongoid::Document
has_many :comments
end
class Comment
include Mongoid::Document
belongs_to :person, :counter_cache => true
end
:counter\u cache=>true选项to beliens\u to将向Person添加一个comments\u count字段,该字段将包含缓存的注释数
拥有计数器缓存后,您可以说:
Person.desc('comments_count')
让你分类
您需要手动使用或初始化计数器才能开始工作。您的评论嵌入到您的员工中,因此您的评论是关于您的员工的?我认为计数器缓存仍然是最干净的方法。