MongoDB学习总结(三) —— 常用聚合函数
上一篇介绍了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学习总结(三) —— 常用聚合函数相关推荐
- mysql的聚合函数综合案例_MySQL常用聚合函数详解
一.AVG AVG(col) 返回指定列的平均值 二.COUNT COUNT(col) 返回指定列中非NULL值的个数 三.MIN/MAX MIN(col):返回指定列的最小值 MAX(col):返回 ...
- mysql的所有聚合函数_MySQL常用聚合函数详解
一.AVG AVG(col) 返回指定列的平均值 二.COUNT COUNT(col) 返回指定列中非NULL值的个数 三.MIN/MAX MIN(col):返回指定列的最小值 MAX(col):返回 ...
- mysql 常用聚合函数总结
前言 聚合函数在工作中大量使用,比如常用的 sum求和函数,avg求平均值的函数等,本篇将mysql聚合函数相关的知识点做一些完整的总结: 数据准备 提前创建一张部门表和员工表,并插入若干数据 CRE ...
- python3常用模块_Python学习笔记三(常用模块)
Python 学习笔记三 (常用模块) 1.os模块 os模块包装了不同操作系统的通用接口,使用户在不同操作系统下,可以使用相同的函数接口,返回相同结构的结果. os.name:返回当前操作系统名称( ...
- MySQL的常用聚合函数
文章目录 AVG()和SUM() MAX()和MIN() COUNT() 聚合函数作用于一组数据,并对一组数据返回一个值.MySQL中常用的聚合函数有, AVG() SUM() MAX() MIN() ...
- SQL语句汇总(三)——聚合函数、分组、子查询及组合查询
聚合函数: SQL中提供的聚合函数可以用来统计.求和.求最值等等. 分类: –COUNT:统计行数量 –SUM:获取单个列的合计值 –AVG:计算某个列的平均值 –MAX:计算列的最大值 –MIN:计 ...
- sql中having、group by用法及常用聚合函数
having是用在聚合函数的用法.当我们在用聚合函数的时候,一般都要用到GROUP BY 先进行分组,然后再进行聚合函数的运算.运算完后就要用到HAVING 的用法了,就是进行判断了. 注意:sele ...
- influxDB 常用聚合函数整理
1)count()函数 返回一个(field)字段中的非空值的数量. 语法: SELECT COUNT(<field_key>) FROM <measurement_name> ...
- MySQL基础学习(六)——聚合函数
目录 1.聚合函数类型 (1)AVG(x) (2)SUM(x) (3)MAX(x) (4)MIN(x) (5)COUNT(x) 2.聚合函数的基本使用 (1)单列分组 (2)多列分组 (3)WITH ...
最新文章
- 每日一技|巧用 Telnet 调试 Dubbo 服务
- 可视化的Redis数据库管理工具redis-desktop-manager的初步使用(图文详解)
- Js 对小数的处理(科学计数法 , 显示精度)
- ML之LightGBM:基于titanic数据集利用LightGBM和shap算法实现数据特征的可解释性(量化特征对模型贡献度得分)
- ASP.NET Core的配置(3): 将配置绑定为对象
- MYSQL 学习笔记记录整理之三:子查询
- 再见!阿里云首席科学家闵万里离职:创办风投基金
- JavaScript 原始数据类型转换
- oracle数据库集群采用的是形式,铁道部采用Oracle集群数据库进行TMIS系统“三级建库”...
- qchart 坐标轴设置_「Qt」利用QChart实现实时动态的曲线数据展示
- C++含有无符号类型的表达式的计算
- 免费随机图片api接口
- Wap开发FAQ大全
- 如何卸载Edge/如何降Edge版本
- 内存带宽测试程序——stream2-C语言版
- 计算机论文有哪些方向,计算机论文研究方向有以下四类
- python导入openpyxl_python系列之(6)Python使用Openpyxl操作Excel
- 阿里云mysql价格_阿里云超级计算mysql价格
- c语言程序设计作业电话簿,C语言设计简易电话簿
- 奥的斯电梯服务器自动呼梯,奥的斯外呼电梯控制系统说明
热门文章
- 中国科学院大学计算机调剂,【中国科学院大学考研调剂官网】中国科学院大学研究生院:2016年调剂信息...
- 【算法原理】支持向量机SVM算法原理
- 初学易语言,目标写外挂
- 覆铜板加工成电路板最容易出现哪些质量问题?
- 概率密度变换公式 雅可比矩阵_【转载】雅克比矩阵与雅克比行列式
- 解决 React Native 中的常见错误
- 用bookdown制作图书
- Nova: Recursive Zero-Knowledge Arguments from Folding Schemes学习笔记
- iOS获取APP ipa 包以及资源文件
- 实验四linux操作系统实验报告(1),操作系统实验报告