我在mongo中有一个集合,由大约50万个文档组成,从中我想要一个具有特定ids的特定字段的总和。
例如, :
单个文档具有meter_id字段和总功率。因此,我想分离具有相同仪表id的文档,然后计算具有相同仪表id的每个集合的总功率。
示例文档:
_id:5e444fc1c5e86c84d1044aeb
meter_id:"jhk"
date:2017-06-17T18:39:28.795+00:00
activePower:Object
unit:"kwh"
Active Power L1:"0"
Active Power L2:"0"
Active Power L3:"0"
Total Active Power:"5"
reactivePower:Object
apparentPower:Object
frequency:Object
thd:Object现在,我必须按仪表id进行分组,并需要总有功功率场的总和,这是有功功率对象的一个键值。
预期产出:
{ _id: 'jhk', total: 69236, totalAmount: }发布于 2020-02-15 23:49:29
试试这个:
查询:
db.collection.aggregate([{$group :{_id : '$meter_id', total : {$sum : { $toInt : '$activePower.TotalActivePower'}}}}])测试: MongoDB-游乐场
注意:,您的$activePower.TotalActivePower字段似乎是一个字符串,如果是,那么我们需要使用$toInt将其转换为数字,以便计算与_id标准匹配的所有文档的总和。
https://stackoverflow.com/questions/60241327
复制相似问题