mongodbとmongoidを使用します。どのようにしてすべての記事を取得し、コメント数で並べ替えますか?
class Article
include Mongoid::Document
has_many :comments
end
class Comment
include Mongoid::Document
belongs_to :article
end
mongodbとmongoidを使用します。どのようにしてすべての記事を取得し、コメント数で並べ替えますか?
class Article
include Mongoid::Document
has_many :comments
end
class Comment
include Mongoid::Document
belongs_to :article
end
並べ替える方向がわからなかったので、両方のインデックスを含めました。使用する予定がない場合は、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