Я использую агрегат для группировки некоторых данных.Я хочу заполнить поля "_id".
Допустим, у меня есть таблица расходов.Который имеет поля, «количество», «тип», «создан_ат», «создан_бай».Теперь я хочу сгруппировать по типу, где типы, я буду указывать в параметрах и показывать, сколько каждый пользователь тратит по типу. Например: ->
{
"_id": "A",
"user_group": [
{
"user": "user1",
"data": 6600
}
],
"amount": 6600
},
{
"_id": "B",
"user_group": [
{
"user": "user1",
"data": 21535.1
},
{
"user": "user2",
"data": 500
}
],
"amount": 22035.1
},
Мой код ->
Expense.aggregate([
{
$match: {
$and:
[
{ type: { $in: req.query.types} },
//{ created_at: Date }
]
}
},
{
$group: {
"_id": {
type: "$type",
user: "$created_by"
},
"amount": { "$sum": "$amount" },
"data": { $push: "$$ROOT" }
}
}, {
$group: {
_id: "$_id.type",
user_group: {
$push: {
user: "$_id.user",
data: { "$sum": "$data.amount" },
username: "$user"
}
},
amount: { "$sum": "$amount" },
}
},
], function (err, data) {
if (err) {
console.log("Error: ", err);
res.json({
success: false,
});
} else {
res.json({
success: true,
data: data
});
}
});
С этим кодом мне не удается получить имя пользователя из таблицы пользователей.Я получаю данные ->
{
"_id": "A",
"user_group": [
{
"user": "5b782c3010a1683090429771",
"data": 6600
}
],
"amount": 6600
},
{
"_id": "B",
"user_group": [
{
"user": "5be6d50e1ee4e926dc5ba6f0",
"data": 21535.1
},
{
"user": "5b782c3010a1683090429771",
"data": 500
}
],
"amount": 22035.1
},
Я хочу заполнить поле пользователя.Как я могу это сделать?Спасибо заранее.