在MongoDB聚合中将$ sum和$ avg与$ addFields一起使用

时间:2018-07-02 19:26:00

标签: javascript mongodb aggregation-framework

根据文档,$avg$sum仅在$project$group阶段可用。

所以我的问题是,当涉及到$addFields时,我可以作为聚合管道的一个阶段吗?

// stage 5
$addFields: {
  "companyTransactionAvg": {
    "$avg": {
      "$sum": "$totals.sixWeekTransactionAvg"
    }
  }
}

这不会出错。结果得到一个数值。这是按照我的想法做的还是其他事情?我正在尝试获取所有文档中所有sixWeekTransactionAvg值的平均值。

这是在我的管道中作为一个独立的阶段进行吗,还是需要明确地将其包含在$project$group阶段中?

1 个答案:

答案 0 :(得分:0)

我现在意识到,尽管人们可以做到这一点,但真正发生的是人们正在获得一个值之和的平均值。因为没有$ grouping进行,所以只读取一个文档,而不是全部文档,并且输出该文档中该值的FooSchema.on('index', function(error) { mongoose.disconnect() // then to exit the script use process.exit() }); 的平均值($avg。当然,考虑到它只是一个值,$sum的{​​{1}}总是与原始值本身相同。

$avg