1

可能重复:
我如何只抓取 20 分钟前创建的评论文章?

使用 mongodb 和 mongoid。如何获取所有文章并按评论数量排序?

class Article
  include Mongoid::Document

  has_many :comments
end

class Comment
  include Mongoid::Document

  belongs_to :article
end
4

1 回答 1

1

我不确定您打算排序的方向,所以我包括了两者的索引 - 如果您不打算使用它,您应该删除一个,但这应该对您有用:

class Article
  include Mongoid::Document

  field :comments_count, :type => Integer, :default => 0
  index [[ :comments_count, Mongo::ASCENDING ]]
  index [[ :comments_count, Mongo::DESCENDING ]]
  has_many :comments

  before_save :update_comments_count

  protected
  def update_comments_count
    self.comments_count = self.comments.count
  end
end
于 2012-05-21T00:29:43.500 回答