上一篇介绍了MongoDB增删改查命令的基本用法,这一篇来学习一下MongoDB的一些基本聚合函数。

下面我们直奔主题,用简单的实例依次介绍一下。

> count() 函数

集合的count函数是最简单的聚合函数,返回集合中文档的数量。

>  distinct() 函数

用于找出一个集合中,给定键的所有不同的值。

我们还可通过在数据库上运行命令,来执行distinct聚合函数,此时我们必须指定集合和键:

命令参数中,键"distinct"指定统计的集合名称,键"key"指定统计的键的名称!返回一个文档,键“value”指定统计的键在该集合中的所有值!我们还可以看出,在统计时还使用了索引。

> group() 函数

group聚合可以实现稍微复杂一些的操作,其执行过程为:先按照指定的键对集合中的文档进行分组,然后通过聚合每一组中的所有文档,来产生最终的结果文档。

下面对student集合中的age进行group,然后对每一组文档进行处理,找出对应的name。

Key: 指定要进行分组所使用的键名。

Initial: 设置初始化值,针对分组后的每一组。

$reduce:函数,第一个参数是当前的文档对象,第二个参数是文档循环的累加。根据所需的条件对每个分组进行聚合操作,每一组会有一个独立的累加器文档,记录聚合结果。

我们还可通过在数据库上运行命令

"ns":  指定集合名。

以上是对集合所有记录进行分组操作,当然还可以根据某些条件来进行分组。下面我们对name是jack,lucy,james的进行分组。

这里我们看到通过condition条件过滤,只对名字是jack,lucy,james的文档进行分组,condition这里可以使用缩写cond或者q。

另外我们看到还有一个参数finalize,这个参数目的是对$reduce聚合后的结果再次进行处理,最终得到所需的结果。

> MapReduce 函数

MapReduce是聚合里最复杂的,也是最灵活的,count,distince,group能做到的,它都能做到。

map:映射函数,将操作映射到集合中的每一个文档,集合会按照你指定的key进行映射分组。使用函数emit(key,value)

reduce:化简函数,会对map分组后的数据进行分组简化,直到每个键的列表只有一个值为止,返回结果集。

mapReduce: 最后执行函数,参数为map,reduce。

概念不好理解,看下实例就很明白了。

从这个实例可以看出,map使用 使用函数emit(key,value),根据name键进行映射分组,每个键对应数组{count:1}的键值。

然后reduce函数根据每个键所对应的键值进行相应操作。最终得到所需的结果集。

最后mapReduce函数输出这个结果集。

下面我们看看这个结果集的值。

常用的聚合函数使用就介绍到这里,下一篇学习一下索引的一些基本用法。

转载于:https://www.cnblogs.com/mejoy/p/6008233.html

MongoDB学习总结(三) —— 常用聚合函数相关推荐

  1. mysql的聚合函数综合案例_MySQL常用聚合函数详解

    一.AVG AVG(col) 返回指定列的平均值 二.COUNT COUNT(col) 返回指定列中非NULL值的个数 三.MIN/MAX MIN(col):返回指定列的最小值 MAX(col):返回 ...

  2. mysql的所有聚合函数_MySQL常用聚合函数详解

    一.AVG AVG(col) 返回指定列的平均值 二.COUNT COUNT(col) 返回指定列中非NULL值的个数 三.MIN/MAX MIN(col):返回指定列的最小值 MAX(col):返回 ...

  3. mysql 常用聚合函数总结

    前言 聚合函数在工作中大量使用,比如常用的 sum求和函数,avg求平均值的函数等,本篇将mysql聚合函数相关的知识点做一些完整的总结: 数据准备 提前创建一张部门表和员工表,并插入若干数据 CRE ...

  4. python3常用模块_Python学习笔记三(常用模块)

    Python 学习笔记三 (常用模块) 1.os模块 os模块包装了不同操作系统的通用接口,使用户在不同操作系统下,可以使用相同的函数接口,返回相同结构的结果. os.name:返回当前操作系统名称( ...

  5. MySQL的常用聚合函数

    文章目录 AVG()和SUM() MAX()和MIN() COUNT() 聚合函数作用于一组数据,并对一组数据返回一个值.MySQL中常用的聚合函数有, AVG() SUM() MAX() MIN() ...

  6. SQL语句汇总(三)——聚合函数、分组、子查询及组合查询

    聚合函数: SQL中提供的聚合函数可以用来统计.求和.求最值等等. 分类: –COUNT:统计行数量 –SUM:获取单个列的合计值 –AVG:计算某个列的平均值 –MAX:计算列的最大值 –MIN:计 ...

  7. sql中having、group by用法及常用聚合函数

    having是用在聚合函数的用法.当我们在用聚合函数的时候,一般都要用到GROUP BY 先进行分组,然后再进行聚合函数的运算.运算完后就要用到HAVING 的用法了,就是进行判断了. 注意:sele ...

  8. influxDB 常用聚合函数整理

    1)count()函数 返回一个(field)字段中的非空值的数量. 语法: SELECT COUNT(<field_key>) FROM <measurement_name> ...

  9. MySQL基础学习(六)——聚合函数

    目录 1.聚合函数类型 (1)AVG(x) (2)SUM(x) (3)MAX(x) (4)MIN(x) (5)COUNT(x) 2.聚合函数的基本使用 (1)单列分组 (2)多列分组 (3)WITH ...

最新文章

  1. 每日一技|巧用 Telnet 调试 Dubbo 服务
  2. 可视化的Redis数据库管理工具redis-desktop-manager的初步使用(图文详解)
  3. Js 对小数的处理(科学计数法 , 显示精度)
  4. ML之LightGBM:基于titanic数据集利用LightGBM和shap算法实现数据特征的可解释性(量化特征对模型贡献度得分)
  5. ASP.NET Core的配置(3): 将配置绑定为对象
  6. MYSQL 学习笔记记录整理之三:子查询
  7. 再见!阿里云首席科学家闵万里离职:创办风投基金
  8. JavaScript 原始数据类型转换
  9. oracle数据库集群采用的是形式,铁道部采用Oracle集群数据库进行TMIS系统“三级建库”...
  10. qchart 坐标轴设置_「Qt」利用QChart实现实时动态的曲线数据展示
  11. C++含有无符号类型的表达式的计算
  12. 免费随机图片api接口
  13. Wap开发FAQ大全
  14. 如何卸载Edge/如何降Edge版本
  15. 内存带宽测试程序——stream2-C语言版
  16. 计算机论文有哪些方向,计算机论文研究方向有以下四类
  17. python导入openpyxl_python系列之(6)Python使用Openpyxl操作Excel
  18. 阿里云mysql价格_阿里云超级计算mysql价格
  19. c语言程序设计作业电话簿,C语言设计简易电话簿
  20. 奥的斯电梯服务器自动呼梯,奥的斯外呼电梯控制系统说明

热门文章

  1. 中国科学院大学计算机调剂,【中国科学院大学考研调剂官网】中国科学院大学研究生院:2016年调剂信息...
  2. 【算法原理】支持向量机SVM算法原理
  3. 初学易语言,目标写外挂
  4. 覆铜板加工成电路板最容易出现哪些质量问题?
  5. 概率密度变换公式 雅可比矩阵_【转载】雅克比矩阵与雅克比行列式
  6. 解决 React Native 中的常见错误
  7. 用bookdown制作图书
  8. Nova: Recursive Zero-Knowledge Arguments from Folding Schemes学习笔记
  9. iOS获取APP ipa 包以及资源文件
  10. 实验四linux操作系统实验报告(1),操作系统实验报告