#mongodb #mongoose
Вопрос:
Я хотел бы иметь возможность использовать ранее вычисленные значения в запросе агрегации мангустов, что-то вроде:
const aggregate = await Model.aggregate([ { $group: { _id: { id: `$id` }, timeStart: { $min: `$aTime`, }, timeLatest: { $max: `$aTime`, }, timeLength: { $subtract: [`$timeStart, $timeLatest`,], }, }, }, ]);
Это, очевидно, не работает — Каков был бы правильный синтаксис?
Ответ №1:
Оказывается, для этого случая есть отдельный индивидуальный оператор: $addFields
const aggregate = await Model.aggregate([ { $group: { _id: { id: `$id` }, timeStart: { $min: `$aTime`, }, timeLatest: { $max: `$aTime`, }, }, { $addFields: { difference: { $subtract: [`$timeLatest`, `$timeStart`] }, }, }, }, ]);