Я ломал голову над сложением всех «других» столбцов во время агрегации в Монго.
Пример моих данных:
[
{'item': 'X',
'USA': 3,
'CAN': 1,
'CHN': 1,
'IDN': 1,
:
:
:
},
{'item': 'R',
'USA': 2,
'CAN': 2,
'CHN': 1,
'IDN': 2,
:
:
:
}
]
На этапе агрегирования я хотел бы иметь новое поле с именем 'OTHER' , который является результатом суммирования всех полей, которые не указаны .
Мой желаемый результат таков:
[
{'item': 'X',
'NAM': 79,
'IDN': 51,
'OTHER': 32
},
{'item': 'R',
'NAM': 42,
'IDN': 11,
'OTHER': 20
}
]
Пока что ближайший Iможет получить, используя это:
mycoll.aggregate([
{'$addFields':{
'NAM': {'$add':[{'$ifNull':['$CAN', 0]},{'$ifNull':['$USA', 0]}]},
'INDIA': {'$ifNull':['$IDN', 0]},
'OTHER': /* $add all the fields that are not $USA, $CAN, $IDN*/
}},
])
Монго гуру, пожалуйста, просветите эту бедную душу.Глубоко ценю это.Спасибо!