相关文章推荐
老实的热水瓶  ·  使用Chrome快速实现数据的抓取(二)—— ...·  1 年前    · 
开朗的丝瓜  ·  AttributeError: ...·  2 年前    · 
坚韧的李子  ·  【C/C++】C语言获取编译时间|程序打印编 ...·  2 年前    · 
痛苦的红金鱼  ·  vba保存文件到指定路径_头条·  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);
 
推荐文章
老实的热水瓶  ·  使用Chrome快速实现数据的抓取(二)——协议-CSDN博客
1 年前
开朗的丝瓜  ·  AttributeError: 'DataFrame' object has no attribute 'label'问题很简明却一直搜不到解决方法_有问必答-CSDN问答
2 年前
坚韧的李子  ·  【C/C++】C语言获取编译时间|程序打印编译时间_51CTO博客_C语言打印时间
2 年前
痛苦的红金鱼  ·  vba保存文件到指定路径_头条
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号