#node.js #mongodb #aggregation-framework
#node.js #mongodb #агрегация-фреймворк
Вопрос:
Мне нужно получить список элементов в коллекции. Обычно я использую:
Transaction.find()
Результат:
[
{
_id: 1283468346827863477,
firstName: 'alex',
amount: 23912
},
{
_id: 1283468346827863477,
firstName: 'alex',
amount: 46456
},
// ...
]
Но мне нужно получить больше значений из базы данных. Я не знаю, как использовать агрегацию.
Мне нужны эти данные:
{
income: <Sum of amount>,
items: [
{
_id: 1283468346827863477,
firstName: 'alex',
amount: 23912
},
{
_id: 1283468346827863477,
firstName: 'alex',
amount: 46456
},
// ...
]
}
Я написал этот код, но результат не тот, который я ожидал:
const trxs = await Transaction.aggregate([
{
$match: findObj,
},
{
$group: {
_id: null,
total: {
$sum: '$amount',
},
},
},
]);
Мне также нужны все поля определенной коллекции.
Комментарии:
1. Добавить
items: {$push: "$$ROOT"}
в общее поле2. @WernfriedDomscheit Большое вам спасибо.