mongodb - 将 MongoDB 中数组元素的值相加
问题描述
我已经为给定的数据进行了一些聚合以得出以下文档结构:
{
"_id" : "test",
"NoOfQuestions" : 3.0,
"info" : [
{
"AnswerrCount" : 3
},
{
"AnswerrCount" : 3
},
{
"AnswerrCount" : 2
}
]
}
但是,我正在尝试将AnswerrCount
列中的所有值相加。所以从上面的例子中,我想要另一列说TotalAnswers:8, (3+3+2)
,然后最终有一个使用NoOfQuestions
,FinalTotal:11, (8+3)
解决方案
您可以使用$sum
聚合来添加数组值
db.collection.aggregate([
{ "$addFields": {
"TotalAnswers": {
"$sum": "$info.AnswerrCount"
},
"FinalTotal": {
"$add": [{ "$sum": "$info.AnswerrCount" }, "$NoOfQuestions"]
}
}}
])
推荐阅读
- java - 如何从 Springboot 中的 JSON 数组中删除元素?
- php - SQLSTATE[HY000] [1045] 用户 'root'@'localhost' 的访问被拒绝(使用密码:否)。DB_HOST 设置为 localhost
- string - AttributeError: 'str' object has no attribute 'append'...适用于教师
- swift - 将 UIImage 设为圆角形式?
- ios - Xcode中opencascade库的IOS示例Lex编译错误
- c# - 基于现有标准解决方案的 Xamarin Forms 解决方案
- java - RecyclerView 不接受来自模型的构造函数
- php - 如何从 Doctrine 的 2 个表中获取数据?
- path - 如何在 Siteground 上指定 cron 脚本的路径?
- vue.js - 通过单击按钮添加组件