В моей коллекции есть следующая структура (вам не нужно обращать внимание на статус):
{
"_id":{"$oid":"5e6355e71b14ee00175698cb"},
"finance":{
"expenditure":[
{"status":true,"_id":{"$oid":"5e63562d1b14ee00175698df"},"amount"{"$numberInt":"100"},"category":"Sport"},
{"status":true,"_id":{"$oid":"5e6356491b14ee00175698e0"},"amount":{"$numberInt":"200"},"category":"Sport"},
{"status":true,"_id":{"$oid":"5e63565b1b14ee00175698e1"},"amount":{"$numberInt":"50"},"category":"Outdoor"},
{"status":true,"_id":{"$oid":"5e63566d1b14ee00175698e2"},"amount":{"$numberInt":"400"},"category":"Outdoor"}
]
}
}
Моя предыдущая ios команда была такой:
User.aggregate([
{ $match: {_id: req.user._id}},
{ $unwind: '$finance.expenditure'},
{ $match: {'finance.expenditure.status': true}},
{ $sort: {'finance.expenditure.currentdate': -1}},
{ $group: {_id: '$_id', expenditure: {$push: '$finance.expenditure'}}}])
При этом я просто получаю обратно все расходы.
Но теперь я хочу сгруппировать расходы по их категориям и суммировать суммы всех расходов по их группе.
Так должно выглядеть так:
{"amount": 300 },"category":"Sport"},
{"amount": 450 },"category":"Outdoor"}
Спасибо за помощь