美文网首页
2020-03-21 记录mongdb(9)

2020-03-21 记录mongdb(9)

作者: 大风车呀大风车 | 来源:发表于2020-04-07 18:26 被阅读0次

聚合操作是指:将一系列不同的操作按照一定顺序应用到数据库的文档中

单一用途的聚合方法

Map Reduce

聚合管道 db.collection.aggregate()

聚合表达式:

(1)用来操作输入文档的“公式”

(2)经过聚合表达式计算出的值可以被赋予输出文档中的字段

(3)字段路径,系统变量,文本,表达式对象,操作符

聚合阶段:

(1)聚合阶段有顺序的排列在聚合管道中

(2)绝大多数聚合阶段可以反复出现($out和$geoNear除外)

(3)数据库层面和集合层面

聚合操作符:

(1)用来构建聚合表达式

(2){<operator:[argument1],[argument2]>...}

(3){<operator:<argument>}

聚合操作:db.collection.aggregate({pipeline},{options})

{pipeline}文档定义了操作中使用的聚合管道阶段和聚合操作符

{options}文档声明了一些聚合操作的参数

聚合表达式:

(1)字段路径的表达式:

$<field>- 使用$来指示字段路径

$<field>.<sub-field>- 使用$和.来指示内嵌文档字段路径

(2)系统变量表达式:

$$<varible>-使用$来表示系统变量

$$CURRENT-指示管道中当前操作的文档

(3)常量表达式:

$listeral:<value> -指示常量value

聚合管道阶段:

图1

$progect 可以控制文档输出的格式,用来剔除不相关的字段,以优化聚合管道操作的性能

$match 尽量在开始阶段少使用,可以减少后续阶段中需要处理的文档数量,优化聚合操作的性能

$limit 、$skip 参数为正整数

$sort  1正向排序,-1反向排序

$loopup 使用单一字段值进行查询

图2

form:同一个数据库中的另一个查询集合

localField:管道文档中用来查询的字段

foreignField:查询集合中的查询字段

as:写入管道文档中的查询结果数组字段

$loopup 使用复杂条件值进行查询

图3

pipeline:对查询集合中的文档使用聚合阶段进行处理

$group

图4

_id:表明定义分组规则

<field1>:可以使用聚合操作符来定义新字段

$out 将聚合管道中的文档写入另一个集合中

options---> 操作选项:allowDiskUse:<boolean> 默认值为false

图5

聚合操作的优化:

聚合阶段的顺序的优化:

图6 图7 图8

聚合阶段合并优化:

图9 图10 图11

相关文章

  • 2020-03-21 记录mongdb(9)

    聚合操作是指:将一系列不同的操作按照一定顺序应用到数据库的文档中 单一用途的聚合方法 Map Reduce 聚合管...

  • PHP7之Mongodb的开发详解

    1.mongdb的连接 2.mongdb的添加 3.mongdb的删除 4.mongdb的修改 5.mongdb的...

  • 2019-04-15 mongdb和mysql的区别 mongd

    mongdb 和 mysql的应用场景,为什么mongdb有哪些优势mongb优点:mongdb 适合于热数据的读...

  • Mongdb被攻击,修复记录

    缘由 最近翻出之前写的代码,使用了阿里云上面的mongdb服务,结果运行一直报错,经过多处排查发现是数据库请求返回...

  • 数据库资源

    oracle mysql mongdb

  • pymongo高级查询

    最近玩了一下mongdb,用pymongo连接mongodb的某些查询跟直接在mongo_cli有些不同。记录如下:

  • MongoDB

    mongodb和python交互 1.mongdb和python交互的模块: pymongo提供了mongdb和p...

  • 【mongDB】mongDB高手课

    OLTP与OLAP的关系是什么? https://www.zhihu.com/question/24110442/...

  • mongodb——1

    1.Mongdb (1)MAC 启动 $ mongdb(2)Linux 启动 (2)使用 1.查看数据库$ sho...

  • MongDB

    MongoDB 是一款开源的文档数据库,并且是业内领先的 NoSQL 数据库,用 C++ 编写而成。MongoDB...

网友评论

      本文标题:2020-03-21 记录mongdb(9)

      本文链接:https://www.haomeiwen.com/subject/rmgguhtx.html