有没有一种方法可以处理mongo db聚合查询的结果以返回单个对象

时间:2019-05-08 06:33:13

标签: mongodb mongodb-query

我有一个简单的汇总mongo db查询,它给了我预期的结果。

db.getCollection('parts-status').aggregate([{ $group: { _id: "$partStatus" ,count:{$sum:1}}}])

结果:

/* 1 */
{
    "_id" : "Unauthorized",
    "count" : 2.0
}

/* 2 */
{
    "_id" : "Authorized",
    "count" : 12.0
}

但是我希望我的结果采用这种格式:

{
"Unauthorized": 2.0,
"Authorized": 12.0
}

是否有可能操纵聚合的初始结果以在查询本身中获得所需的结果?

1 个答案:

答案 0 :(得分:0)

  

尝试

 db.getCollection('parts-status').aggregate([
 { 
   $group: {
     _id: "$partStatus" ,
     count:{$sum:1}
   }
 },
 {
   $replaceRoot: {
        newRoot: {
        $arrayToObject: [[{k: "$_id", v: "$count"}]]
        }
    }
  }])