专栏首页博客园【mongoDB查询进阶】聚合管道(一) -- 初识

【mongoDB查询进阶】聚合管道(一) -- 初识

https://segmentfault.com/a/1190000010618355

前言:一般查询可以通过find方法,但如果是比较复杂的查询或者数据统计的话,find可能就无能为力了,这时也许你需要的是aggregate.

什么是聚合管道(aggregation pipeline)

英文文档中是aggregation pipeline,直译为聚合管道,它可以对数据文档进行变换和组合。聚合管道是基于数据流概念,数据进入管道经过一个或多个stage,每个stage对数据进行操作(筛选,投射,分组,排序,限制或跳过)后输出最终结果。

解释
  • orders是一个文档集合
  • aggregate是聚合方法,参数是数组,每个数组元素的就是一个stage,对数据进行处理,处理完流到下一个stage
  • $match是匹配操作符,筛选出status是A的文档
  • $group是分组操作符,以cust_id为分组条件,相同的cust_id分为同组
  • $sum是算术操作符,{ $sum: '$amount' }表示分组后,计算amount的总和。

管道操作符介绍

mongoDB中有许多操作符,在aggregate中每个stage可以使用的操作符叫做管道操作符,以下列举比较常用的管道操作符:

操作符

简述

$project

投射操作符,用于重构每一个文档的字段,可以提取字段,重命名字段,甚至可以对原有字段进行操作后新增字段

$match

匹配操作符,用于对文档集合进行筛选

$group

分组操作符,用于对文档集合进行分组

$unwind

拆分操作符,用于将数组中的每一个值拆分为单独的文档

$sort

排序操作符,用于根据一个或多个字段对文档进行排序

$limit

限制操作符,用于限制返回文档的数量

$skip

跳过操作符,用于跳过指定数量的文档

$lookup

连接操作符,用于连接同一个数据库中另一个集合,并获取指定的文档,类似于populate

$count

统计操作符,用于统计文档的数量

小结

db.collection.aggregate([])是聚合管道查询使用的方法,参数是数组,每个数组元素就是一个stage,stage中运用操作符对数据进行处理后再交由下一个stage,直到没有下个stage,就输出最终的结果,而数据的处理则是通过使用操作符,本文先简单介绍了一下有哪些常用的操作符,下一篇再详细说明。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【mongoDB查询进阶】聚合管道(三)--表达式操作符

    表达式操作符主要用于在管道中构建表达式时使用,使用类似于函数那样需要参数,主要用于$project操作符中,用于构建表达式,使用方法一般如下:

    莫问今朝
  • Windows下Nginx的启动、停止等命令

    http://wanganwu.blog.163.com/blog/static/7788722012322111417966/

    莫问今朝
  • 静态文件

       静态文件通常位于 Web root(<content-root>/wwwroot)文件夹下

    莫问今朝
  • 运维监控指标可视化利器-Grafana

    grafana 是一款采用 go 语言编写的开源应用,主要用于大规模指标数据的可视化展现,是网络架构和应用分析中最流行的时序数据展示工具,目前已经支持绝大部分常...

    码农小胖哥
  • 爬虫入门(三):BeautifulSoup

    BeautifulSoup4.x 兼容性不好,选用BeautifulSoup3.x + Python 2.x. 下载安装包放在/lib文件下,DOS下输入: 1...

    一点儿也不潇洒
  • 教育行业需要了解的大数据,武汉Hadoop大数据平台如何搭建?数道云科技

    从教育行业的需求出发,去分析互联网时代教育行业需要了解的大数据,以及大数据平台的搭建应该注意什么?

    数道云大数据
  • Grafana全面瓦解

    链接:https://www.jianshu.com/p/7e7e0d06709b

    李海彬
  • 520送女友礼物指南

    不过如果真的只按照这种方法来表达程序员对女朋友的爱 那么遗憾的告诉你 你就只能一个人过520了 哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈 难道你没有听过一个段子...

    意气相许的许
  • Windows 下优秀的MarkDown 编辑工具

    Markdown 是一个 Web 上使用的文本到HTML的转换工具,可以通过简单、易读易写的文本格式生成结构化的HTML文档。目前 github、Stackov...

    Alone88
  • CVPR 2020|超越H.265,中科大使用多帧数据改进视频压缩新方法

    随着深度学习的兴起,可学习的视频压缩( learned video compression)方法也越来越引起研究学者的重视。

    CV君

扫码关注云+社区

领取腾讯云代金券