Mongodb:如何计算字段的总和
可以使用以下方法来计算MongoDB中某个字段中的值的总和:
方法一:计算字段的和
db.collection.aggregate([{ $group : {_id: null , sum_val:{$sum: " $valueField "}}}])
方法二:按组计算字段总和
db.collection.aggregate([{ $group : {_id: " $groupField ", sum_val:{$sum: " $valueField "}}}])
以下示例展示了如何通过收集团队使用每种方法并提供以下文档:
db.teams.insertOne({team: " Mavs ", points: 30, rebounds: 8}) db.teams.insertOne({team: " Mavs ", points: 30, rebounds: 12}) db.teams.insertOne({team: " Spurs ", points: 20, rebounds: 7}) db.teams.insertOne({team: " Spurs ", points: 25, rebounds: 5}) db.teams.insertOne({team: " Spurs ", points: 25, rebounds: 9})
示例1:计算字段的总和
我们可以使用下面的代码来计算points字段中的值的总和:
db.teams.aggregate([{ $group : {_id: null , sum_val:{$sum: " $points "}}}])
该查询返回以下结果:
{ _id: null , sum_val: 130}
从结果中我们可以看到点域中的值之和为130 。
我们可以通过手动计算点值的总和来手动验证这是正确的:
积分总和:30 + 30 + 20 + 25 + 25 = 130 。
示例2:按组计算字段总和
我们可以使用下面的代码来计算points字段中的值的总和,并按team字段分组:
db.teams.aggregate([{ $group : {_id: " $team ", sum_val:{$sum: " $points "}}}])
该查询返回以下结果:
{ _id: ' Spurs ', sum_val: 60 } { _id: ' Mavs ', sum_val: 70 }
从结果我们可以看出:
- 热刺队的总积分为60 分。
- 小牛队的总分是70 分。
注意:您可以在此处找到$sum函数的完整文档。
其他资源
以下教程解释了如何在 MongoDB 中执行其他常见操作:
如何在 MongoDB 中计算中值
如何计算 MongoDB 中的平均值
如何计算 MongoDB 中的最大值