Пользовательские переменные в агрегации $ group? - PullRequest
0 голосов
/ 06 августа 2020

Учитывая этап конвейера агрегирования $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 в этом случае, поскольку нам нужен результат более чем в одном поле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...