我有什么方法可以在一个请求中返回多个计数吗?
而不是运行users.find({gender:"male"}).count();
并获得231
,然后运行users.find({gender:"female"}).count();
获取416
可能返回{male:"231",female:"416"}
的内容。我知道map reduce可以做到这一点,这是我最好的选择吗?
答案 0 :(得分:2)
答案 1 :(得分:0)
RameshVel是对的。 $group
命令可能就是你要找的。 p>
例如,以下查询:
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/
希望有所帮助。