Используйте ранее вычисленные значения в агрегатной функции при запросе с Мангустом

#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`] },  },  },   },  ]);