javascript - 在 MongoDB 聚合中将 $sum 和 $avg 与 $addFields 一起使用
问题描述
根据文档,两者$avg
和$sum
仅在$project
and$group
阶段可用。
所以我的问题是,当涉及到 时$addFields
,我可以将其作为聚合管道中的一个阶段吗?:
// stage 5
$addFields: {
"companyTransactionAvg": {
"$avg": {
"$sum": "$totals.sixWeekTransactionAvg"
}
}
}
这不会出错。结果我得到一个数值。这是在做我认为的事情,还是发生了其他事情?我正在尝试获取sixWeekTransactionAvg
所有文档中所有值的平均值。
这将作为我管道中的一个独立阶段工作,还是需要明确包含在 a$project
或$group
阶段中?
解决方案
我现在意识到,虽然可以做到这一点,但这里真正发生的事情是获得一个值之和的平均值。因为没有进行 $grouping,所以只读取一个文档,而不是所有文档,并且输出该文档中该值的平均值 ( $avg
) 。$sum
当然,考虑到它只是一个值,the $avg
of the$sum
总是与原始值本身相同。
value: 10
averageOfValue: 10
推荐阅读
- python - 遍历列表列表并删除不需要的字符串
- r - DataExplorer 无法创建 PDF 报告
- report - 有没有办法在 tablix 和页面末尾之间显示一个字符串?
- r - ggplot:更改单个图中条形的顺序
- typescript - 如何在 Typescript 中为对象属性动态分配值?
- amazon-web-services - 如何在最佳实践中查询 DynamoDB 中的大数据
- reactjs - 我将如何创建反应应用程序,但此错误不断出现
- visual-studio - 适用于 VS 2019 的 .Net 核心模板
- python - 想把一个字符串分成三部分
- iis - 为什么设置服务器变量时 IIS 重写规则返回错误?