我想通过带有关联值的集合进行排序。
示例:
我为帖子提供了多种关联:
- 评论
- 评分
- 附着物
如何通过以下关联订购帖子:
- order_by most_commented
- order_by most_rated
- order_by most_associations ....
谢谢。
答案 0 :(得分:1)
现在我可以回答这个问题^^
使用Mongoid version 3.1,活动记录功能“counter_cache”是可用的。 例如,我收到了一篇引用评论的帖子:
class Post
include Mongoid::Document
field :body, type: String
has_many :comments
end
class Comment
include Mongoid::Document
field :body, type: String
belongs_to :post, counter_cache: true
end
在这种情况下,每个帖子实例都有一个comments_count字段,其中包含帖子中引用的评论数。
现在,您可以使用comments_count字段订购帖子。 请记住,只有至少存在一条评论时,此字段才可用。 或者使用模型中的默认值显式设置comments_count字段。