Учитывая этап конвейера агрегирования $group
следующим образом:
$group: {
_id: ...,
hoursStreamed: { $sum: { $divide: [{ $subtract: ["$ts", { $max: ["$prev.ts", "$start"] }] }, 1000 * 60 * 60] } },
hoursWatched: { $sum: { $multiply: [{ $divide: [{ $subtract: ["$ts", { $max: ["$previous.ts", "$start"] }] }, 1000 * 60 * 60] }, "$viewers"] },
}
Можно ли каким-то образом присвоить результат повторяющегося вычисления
{ $divide: [{ $subtract: ["$ts", { $max: ["$prev.ts", "$start"] }] }, 1000 * 60 * 60] }
переменной, которая может быть используется как в hoursStreamed
, так и в hoursWatched
?
Я не понимаю, как можно использовать $let
в этом случае, поскольку нам нужен результат более чем в одном поле.