首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在以下条件下编写mongo的聚合函数

如何在以下条件下编写mongo的聚合函数
EN

Stack Overflow用户
提问于 2020-02-15 17:33:21
回答 1查看 166关注 0票数 1

我在mongo中有一个集合,由大约50万个文档组成,从中我想要一个具有特定ids的特定字段的总和。

例如, :

单个文档具有meter_id字段和总功率。因此,我想分离具有相同仪表id的文档,然后计算具有相同仪表id的每个集合的总功率。

示例文档:

代码语言:javascript
复制
_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进行分组,并需要总有功功率场的总和,这是有功功率对象的一个键值。

预期产出:

代码语言:javascript
复制
{ _id: 'jhk', total: 69236, totalAmount:  }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-15 23:49:29

试试这个:

查询:

代码语言:javascript
复制
db.collection.aggregate([{$group :{_id : '$meter_id', total : {$sum : { $toInt : '$activePower.TotalActivePower'}}}}])

测试: MongoDB-游乐场

注意:,您的$activePower.TotalActivePower字段似乎是一个字符串,如果是,那么我们需要使用$toInt将其转换为数字,以便计算与_id标准匹配的所有文档的总和。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60241327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档