Мой документ выглядит так:
_id:'111'
products:[
{
_id:'pqr'
nums:[
{_id:'aaa',
quantity:30
},
{_id:'bbb',
quantity:40
}
]
}
]
Мне нужно получить:
(i) суммирование поля количества, которое находится внутри поддокумента nums, которое снова находится в поддокументе продуктов.
(ii) массив продуктов, который должен быть возвращен как единое целое (с вычисленным количеством внутри него И субдокументом nums как есть)
Ниже показано, как я хочу, чтобы мой результат был таким:
products:[
{
_id: 'pqr',
nums:[
{_id:'aaa',
quantity:30
},
{_id:'bbb',
quantity:40
}
],
quantity: 70
}
]
До сих пор я пробовал это делать
Shop.aggregate([
{$match: {'_id':'111'},
{$unwind: "$products"},
{$group:{
_id : "$_id",
nums:{$last:"$nums"},
quatity: //I have no idea how to get this total quantity which corresponds to _id:'pqr'
}
}
])
Есть какие-нибудь проблемы, как это сделать?