1 回のリクエストで複数のカウントを返す方法はありますか?
むしろ、実行users.find({gender:"male"}).count();
して取得して231
実行して、返される可能性のあるものをusers.find({gender:"female"}).count();
取得します。map reduce でこれができることは知っていますが、それが私の最善の策ですか?416
{male:"231",female:"416"}
Groupby
フレームワークでAggregation
トリックを行います
db.users.aggregate({$group:{_id:'$gender',count:{$sum:1}}})
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/をご覧ください。
それが役立つことを願っています。