У меня есть массив значений, которые я хочу сгруппировать по id и получить сумму всех значений. В настоящее время я пытаюсь:Агрегация массива значений в MongoDB
db.entries.aggregate(
[
{ $match: {"user": "John" } },
{ "$unwind": '$games'},
{ $group: {
"_id": "$games.id",
"score": { "$sum": "$games.score"} }},
])
Данные выглядит следующим образом:
{
"user":"john",
"games":[
{
"id":123,
"score":123
}
]
},
{
"user":"john",
"games":[
{
"id":123,
"score":123
}
]
},
{
"user":"john",
"games":[
{
"id":256,
"score":256
}
]
}
В этом примере для «John» Я хотел бы, чтобы получить общее количество всех уникальных игровых очков. Я должен получить (123 + 256) в этом примере.
Однако сейчас я получаю сумму отдельных игр, а не всех из них в целом.
В чем проблема? – solomkinmv
Является ли игра всегда одним массивом элементов? – styvane