首页 > 解决方案 > $group 聚合中的自定义变量?

问题描述

给定这样的$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在这种情况下如何使用,因为我们需要多个领域的结果。

标签: mongodbaggregation-framework

解决方案


推荐阅读