У меня есть следующий агрегат:
[
{ $unwind: "$stocks" },
{ $sort: { date: 1 } },
{ $group:
{
_id: { userId: "$userId", productId: "$stocks.productId" },
stock: { $last: "$stocks" },
lastDate: { $last: "$date" }
}
},
{
$group: {
_id: "$_id.userId",
stocks: { $push: { stock: "$stock", lastDate: "$lastDate" } }
}
}
]
Он генерирует эти документы:
{
"_id": "5e75f498359fc8159d5b6075",
"stocks": [
{
"stock": {
"productId": "5e75eae1359fc8159d5b6073",
"quantity": 20
},
"lastDate": "2020-03-21T16:21:14.008Z"
},
{
"stock": {
"productId": "5e75eaea359fc8159d5b6074",
"quantity": 1
},
"lastDate": "2020-03-21T15:59:31.615Z"
}
]
}
Он работает хорошо, но я хочу, чтобы все позиции в запасах были "1-го уровня" deep:
{
"_id": "5e75f498359fc8159d5b6075",
"stocks": [
{
"productId": "5e75eae1359fc8159d5b6073",
"quantity": 20
"lastDate": "2020-03-21T16:21:14.008Z"
},
{
"productId": "5e75eaea359fc8159d5b6074",
"quantity": 1
"lastDate": "2020-03-21T15:59:31.615Z"
}
]
}
Можете ли вы помочь мне обновить мой агрегат для достижения желаемого результата?
РЕДАКТИРОВАТЬ: Вот образец документа:
{
"_id": ObjectId("5e7604e8645bb946e7eba6b5"),
"date": "2020-03-21T12:13:28.355Z",
"userId": ObjectId("5e75d985359fc8159d5b6072"),
"stocks": [
{
"productId": ObjectId("5e75eae1359fc8159d5b6073"),
"quantity": 5
},
{
"productId": ObjectId("5e75eaea359fc8159d5b6074"),
"quantity": 5
}
]
}