1

我想通过具有关联值的集合进行排序。

例子:

我得到了一个帖子的多重关联,例如:

  • 评论
  • 收视率
  • 附件

我如何通过这些关联订购帖子,例如:

  • order_by most_commented
  • order_by most_rated
  • order_by most_associations ....

谢谢你。

4

1 回答 1

1

现在我可以回答这个问题了^^

在 Mongoid 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 字段。

于 2013-05-08T16:49:02.000 回答