0

Mongoid には次のドキュメント構造があります。

class Post
    include Mongoid::Document
    field "title", type: String
    field "body", type: String
    field "category_name", type: String
    field "category_id", type: Integer
end

検索する投稿の既存のカテゴリをすべて選択する必要があります。これが SQL の場合、次のようにします。

SELECT distinct category_name, category_id FROM posts 

Mongoid の SQL クエリでこれを行うにはどうすればよいですか?

4

1 に答える 1

0

モデルが category_name フィールドと category_id フィールドのみを返すようにする場合は、"only" を使用します。Post.all.only(:category_name, :category_id)データベースのすべての投稿を返しますが、これら 2 つの属性の値のみを返し、他のすべての属性は nil になります。

Post.distinct(:category_name)しかし、Mongoid 3.1では、投稿のさまざまなカテゴリ名のリストを配列として返すことができます。古いバージョンの mongoid ではPost.all.distinct(:category_name)、同じリターンを得ることができます。

于 2013-03-28T03:30:10.323 に答える