博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MongoDB 学习笔记之 group聚合
阅读量:6434 次
发布时间:2019-06-23

本文共 953 字,大约阅读时间需要 3 分钟。

group聚合:

 

  • key: 分组字段
  • cond:过滤条件
  • reduce:
  • curr是当前行
  • result是每组的结果集
  • initial : 组变量初始值
  • finalize: 统计一组后的回调函数

用group求每组count:

db.fruit.group({key:{"name": 1},  cond:{"fruitid": {$lt: 10}},  reduce: function(curr, result){  result.cnt += 1;  },  initial: {cnt: 1}})

用group求每组sum:

db.fruit.group({key:{"name": 1},  cond:{"fruitid": {$lt: 10}},  reduce: function(curr, result){  result.cnt += curr.weight;  },  initial: {cnt: 0}})

用group求每组最大最小值max/min:

db.fruit.group({key:{"name": 1},  cond:{"fruitid": {$lt: 10}},  reduce: function(curr, result){  if(curr.weight> result.cnt) result.cnt = curr.weight;  },  initial: {cnt: 0}}) 

用group求每组平均值avg:

db.fruit.group({key:{"name": 1},  cond:{},  reduce: function(curr, result){  result.cnt += 1; result.sum += curr.weight },  initial: {cnt: 0, sum: 0}, finalize: function(result) { result.avg = result.sum / result.cnt; }})

 

注意:

 

Group不支持shard cluster, 无法分布式运算

分布式要使用aggregate(), mapReduce()

 

转载于:https://www.cnblogs.com/AK47Sonic/p/7401117.html

你可能感兴趣的文章
android 技术
查看>>
myecplise2013设置总结
查看>>
理解MySQL——索引与优化
查看>>
JFinal教程1——小白的第一个JFinal程序
查看>>
调用startActivityForResult后,onActivityResult立刻响应,返回当
查看>>
spring boot 源码分析(四) 配置文件加载4 之 ConfigFileApplicationListener
查看>>
分享30个开发人员有用的CSS代码片段
查看>>
Sysprep的那些事
查看>>
openfire smack包聊天室
查看>>
The Syntax of Funs
查看>>
基于反射做的对象比对
查看>>
java 代码改动一点点,eclipse 老是自动重新加载的解决方案
查看>>
RxJava学习笔记
查看>>
Java 多线程 - 线程 - 中断
查看>>
At first!
查看>>
python学习系列之python装饰器基础(2)---装饰含返回值的函数
查看>>
神奇的负载均衡
查看>>
kubernetes log 流式数据处理
查看>>
d3.js——对柱状图和折线图的封装
查看>>
sqlserver2008使用设置sa用户登录步骤
查看>>