Есть ли способ манипулировать результатом агрегированного запроса dong Монго для возврата одного объекта - PullRequest
0 голосов
/ 08 мая 2019

У меня есть простой агрегатный запрос 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 голосов
/ 08 мая 2019

попробуйте это

 db.getCollection('parts-status').aggregate([
 { 
   $group: {
     _id: "$partStatus" ,
     count:{$sum:1}
   }
 },
 {
   $replaceRoot: {
        newRoot: {
        $arrayToObject: [[{k: "$_id", v: "$count"}]]
        }
    }
  }])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...