2013-02-27 62 views
1

我想通过一个集合中的值来关联一个集合。如何通过一个mongoid协会订购

例子:

我multible协会的帖子,如:

  • 评论
  • 等级
  • 附着物

我怎样才能订购帖子通过这个协会,如:

  • ORDER_BY most_commented
  • ORDER_BY most_rated
  • ORDER_BY most_associations ....

谢谢。

+1

我真的很想知道这一点。 – 2013-05-06 13:36:38

回答

1

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

随着Mongoid version 3.1活动记录功能 “counter_cache” 是aviable。 比如我买了参考意见后:

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字段显式设置为默认值。