相关文章推荐
沉稳的手链  ·  python-thread多线程通俗理解 ...·  2 周前    · 
豪情万千的打火机  ·  Avoiding Service Call ...·  3 月前    · 
听话的马克杯  ·  python ...·  1 年前    · 
率性的春卷  ·  LiquiBase启动慢,被锁_flowab ...·  1 年前    · 
爱运动的大脸猫  ·  数据仓库日志记录改进 - ...·  2 年前    · 
没有腹肌的开水瓶  ·  win2003中SID号和GUID_活到老, ...·  2 年前    · 
Code  ›  mongodb 不同field的sub-document元素求和 -
mongodb num
https://segmentfault.com/q/1010000021711684
追风的匕首
2 年前
segmentfault segmentfault
注册登录
问答 博客 标签 活动
发现
✓ 使用“Bing”搜本站 使用“Google”搜本站 使用“百度”搜本站 站内搜索
注册登录
  1. 首页
  2. 问答
  3. mongodb
  4. 问答详情

mongodb 不同field的sub-document元素求和

头像
alvenchen
3 2
发布于
2020-02-09
新手上路,请多包涵

我有一些按照小时时间统计的数据:

"name": "张三", "hour": { "0": { "num": 11 "1": { "num": 12 "name": "李四", "hour": { "0": { "num": 21 "1": { "num": 22

想把"0"--"9"十个时间点所有人的num数加起来,该如何操作?
即例子中的:(11+12+...) + (21+22+...)+...
或(11+21+...)+ (12+22+...)+...

mongodb
阅读 1.7k
2 个回答
得票 最新
头像
spoonysnail
80 1 7
发布于
2020-02-10
✓ 已被采纳

可以用mapReduce做,map里用固定值作为key,并计算单个人十个时间点的总和作为value;reduce里再进行所有人的求和。

db.collection.mapReduce(function(){
    const hourDict = this.data.hour;
    const personSum = hourDict.0.num + hourDict.1.num + ...;
    emit('allHours', personSum);
 
推荐文章
沉稳的手链  ·  python-thread多线程通俗理解 - 心如__止水
2 周前
豪情万千的打火机  ·  Avoiding Service Call Failures in Oracle Service Bus and Oracle SOA Suite
3 月前
听话的马克杯  ·  python VTK三维点云每个点上色_mob649e815da088的技术博客_51CTO博客
1 年前
率性的春卷  ·  LiquiBase启动慢,被锁_flowable死锁 超时解决-CSDN博客
1 年前
爱运动的大脸猫  ·  数据仓库日志记录改进 - Operations Manager | Microsoft Learn
2 年前
没有腹肌的开水瓶  ·  win2003中SID号和GUID_活到老,学到老。的技术博客_51CTO博客
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号