mongodb - 获取mongodb中一种列值的行总和作为单个输出
问题描述
我正在尝试根据 MongoDB 中列值 work.type 的类型来获取字段“score.number”的总和。它应该为“hw”获取 sum 为 25,并将“cw”作为 5 作为学生“A”的单个输出。有没有办法使用 mongodb 查询来实现它?我也尝试了 $group ,但它似乎没有针对单个学生记录“A”获取工作类型和每个工作类型的总和。
预期输出:
解决方案
在$match
你应该$group
这样使用之后
db.collection.aggregate([
{
$match: {
student: {
$in: [
"A"
]
},
"work.type": {
$in: [
"hw",
"cw"
]
}
}
},
{
"$group": {
"_id": {
"worktype": "$work.type",
"student": "$student"
},
"workScore": {
"$sum": "$score.number"
}
}
}
])
推荐阅读
- node.js - “请求”:错误:{错误:证书链中的自签名证书
- jenkins - ANT 目标执行成功或失败指示器
- javascript - AngularJS | 有什么方法可以从 AngularJS 中删除 data-ng-include
- reactjs - 在 Redux 状态更新后反应不重新渲染
- dns - Google Cloud Platform:将域连接到启用 SSL 的 VM 以运行闪亮的应用程序
- python - 储存信息
- java - 在 netbeans IDE 中显示的图像在实际应用中不显示
- python - 如何在 Keras 中设置自适应学习率
- android - 通知通道可以用 XML 声明吗?
- r - 错误指定索引不是 x 的列 (as_tbl_time)