有什麼辦法讓我在一個請求中返回多個計數?多個計數一個請求?
而是然後運行users.find({gender:"male"}).count();
並獲得231
然後運行users.find({gender:"female"}).count();
越來越416
東西可以返回{male:"231",female:"416"}
。我知道地圖縮小可以做到這一點,是我最好的選擇?
有什麼辦法讓我在一個請求中返回多個計數?多個計數一個請求?
而是然後運行users.find({gender:"male"}).count();
並獲得231
然後運行users.find({gender:"female"}).count();
越來越416
東西可以返回{male:"231",female:"416"}
。我知道地圖縮小可以做到這一點,是我最好的選擇?
在Aggregation
框架Groupby
會做的伎倆
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/
希望這有助於。