0

MongoDBデータベースにたくさんのコレクションがあります。私が理解しようとしていることを説明するために、「レストラン」という名前のサンプルドキュメントを次に示します。

{ name: "Foo"
  categories: [Pizza, Food]
  visits: 10
  location: "San Francisco"
}

カテゴリの最初のカテゴリでグループ化された、場所がサンフランシスコに設定されている訪問済みレストランのトップ10をクエリできるようにする必要があります。すべてのコレクションが同じドキュメント形式であると仮定すると、それは現在どのように行われるでしょうか?

4

1 に答える 1

2

まず、「サンフランシスコ」の場所にあるすべてのドキュメントをクエリします。

db.foo.find( {location: "San Francisco" } )

次に、訪問数の多いレストランを見つけるには、レストランの訪問数で結果を並べ替えます。このリストは訪問ごとに番号の逆順にしたいので、訪問を使用します:-1:

db.foo.find( {location: "San Francisco"} ).sort( {visits: -1} )

トップ10のレストランだけを取得するために、この結果を10件の結果に制限します。

db.foo.find( {location: "San Francisco"} ).sort( {visits: -1} ).limit(10)

最後に、カテゴリ別に「グループ化」された結果を取得するには、最初に訪問数で結果を並べ替え、次にその順序でカテゴリ別に並べ替えます。

db.foo.find( {location: "San Francisco"} ).sort( {visits: -1, categories: 1} ).limit(10)
于 2012-09-05T21:56:10.370 に答える