Агрегация mongoDB: как использовать значение в качестве ключа - PullRequest
0 голосов
/ 02 ноября 2018

Привет, у меня есть такие записи, как:

{_id:xxx, user:1, item:A, count: 1}
{_id:xxx, user:1, item:B, count: 3}
{_id:xxx, user:2, item:A, count: 5}
{_id:xxx, user:2, item:B, count: 2}

Могу ли я получить данные ниже, используя агрегат?

{user:1,{A:1,B:3}, user:2,{A:5,B:2}}

1 Ответ

0 голосов
/ 02 ноября 2018

Вы можете использовать эту $ группу $ arrayToObject

db.col.aggregate([
   {"$group" : {"_id" : "$user","data" : {"$push" : {"k" : "$item","v" : "$count"}}}},
   { "$project" : {"user" : "$_id","_id" : 0, "data" : { "$arrayToObject" : "$data" }}}

])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...