首页 > 解决方案 > 将 MongoDB 中数组元素的值相加

问题描述

我已经为给定的数据进行了一些聚合以得出以下文档结构:

{ 
"_id" : "test", 
"NoOfQuestions" : 3.0, 
"info" : [
    {
        "AnswerrCount" : 3
    }, 
    {
        "AnswerrCount" : 3
    }, 
    {
        "AnswerrCount" : 2
    }
]
}

但是,我正在尝试将AnswerrCount列中的所有值相加。所以从上面的例子中,我想要另一列说TotalAnswers:8, (3+3+2),然后最终有一个使用NoOfQuestions,FinalTotal:11, (8+3)

标签: mongodbmongodb-queryaggregation-framework

解决方案


您可以使用$sum聚合来添加数组值

db.collection.aggregate([
  { "$addFields": {
    "TotalAnswers": {
      "$sum": "$info.AnswerrCount"
    },
    "FinalTotal": {
      "$add": [{ "$sum": "$info.AnswerrCount" }, "$NoOfQuestions"]
    }
  }}
])

推荐阅读