У меня есть коллекция Shop с таким документом:
{
_id:'xyz'
sales:[
{
_id:'aaa'
productId:'ppp',
quantity: 3
},
{
_id:'bbb'
productId:'qqq'
quantity: 4
},
]
}
Когда я запрашиваю элемент в массиве продаж (_id: 'aaa'), мне нужно получить его количество и сумму количества в весь массив продаж ie количество: 3, totalQuantity: 7
То же самое, когда я запрашиваю другой элемент (_id: 'bbb'), мне нужно получить количество: 4, totalQuantity: 7
Я пробовал использовать агрегат следующим образом:
Shop.aggregate([
{$match: {'_id': ObjectId('xyz'),'sales._id':ObjectId('aaa')}},
{$group: {
_id: "$_id",
totalQuantity: {
"$sum": {
"$sum": "$sales.quantity"
}
}
}
])
Но это не работает.
Как я могу этого добиться?