0

1 回のリクエストで複数のカウントを返す方法はありますか?

むしろ、実行users.find({gender:"male"}).count();して取得して231実行して、返される可能性のあるものをusers.find({gender:"female"}).count();取得します。map reduce でこれができることは知っていますが、それが私の最善の策ですか?416{male:"231",female:"416"}

4

2 に答える 2

2

GroupbyフレームワークでAggregationトリックを行います

 db.users.aggregate({$group:{_id:'$gender',count:{$sum:1}}}) 
于 2012-11-08T02:46:56.520 に答える
0

RameshVelは正しいです。コマンドはおそらくあなた$groupが探しているものです。

たとえば、次のクエリです。

db.people.aggregate({$group: {_id: '$gender', total: { $sum : 1 }}})

次の結果が生成されます。

{
  "result": [
    {
      "_id": "m",
      "total": 49988
    },
    {
      "_id": "f",
      "total": 50012
    }
  ],
  "ok": 1
}

MongoDB の集約フレームワークについて詳しくは、http: //docs.mongodb.org/manual/applications/aggregation/をご覧ください。

それが役立つことを願っています。

于 2012-11-08T03:02:56.993 に答える