Mongodb 一个请求有多个计数?

Mongodb 一个请求有多个计数?,mongodb,count,database,Mongodb,Count,Database,我有没有办法在一个请求中返回多个计数 而不是运行users.find({gender:“male”}).count()并获取231然后运行users.find({gender:'female}).count()获取416可以返回{男性:“231”,女性:“416”}。我知道map reduce可以做到这一点,这是我的最佳选择吗?在聚合框架中可以做到这一点 db.users.aggregate({$group:{_id:'$gender',count:{$sum:1}}}) 拉梅什维尔是正确

我有没有办法在一个请求中返回多个计数

而不是运行
users.find({gender:“male”}).count()
并获取
231
然后运行
users.find({gender:'female}).count()
获取
416
可以返回
{男性:“231”,女性:“416”}
。我知道map reduce可以做到这一点,这是我的最佳选择吗?

聚合
框架中可以做到这一点

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

拉梅什维尔是正确的。
$group
命令可能就是您要查找的

例如,以下查询:

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

将产生以下结果:

{
  "result": [
    {
      "_id": "m",
      "total": 49988
    },
    {
      "_id": "f",
      "total": 50012
    }
  ],
  "ok": 1
}
您可以在此处阅读有关MongoDB聚合框架的更多信息:

希望有帮助