MongoDB之聚合查询

MongoDB普通查询播客:https://blog.csdn.net/sinat_32366329/article/details/81784562

聚合框架是MongoDB的高级查询语言,允许我们通过转化合并由多个文档的数据来生成新的在单个文档里不存在的文档信息。通俗一点来说,可以把MongoDB的聚合查询等价于SQL的GROUP BY语句。

聚合操作过程可以理解为下面的图,每个聚合操作完后,将输出数据作为下一个聚合操作的输入数据。

聚合操作汇总

SQL对比聚合操作

$match查询条件聚合操作

普通的查询操作,对于查询用户名为jack的用户,使用find操作

聚合的查询操作,使用aggregate操作。Aggregate单词的意思是聚合,可以增加多个操作,这里使用简单的条件,$match。注意aggregate内部使用数组,因为聚合操作可以聚合多个。

$project,指定要输出的文档属性

普通操作对于查询后需要输出指定的对象操作如下:

$project聚合操作,指定要输出的文档属性

$group用于聚合管道

$match/$sort/$skip/$limit

这4个操作符和普通查询函数意思相同,但是用法不同而已,普通查询通过点缀的方式连接函数。

聚合操作则通过管道方式执行

$unwind,将数组里面的每一个值,解析为一个文档

普通查询,以及输出结果。结果like是一个数组

$unwind解析为单个文档对象后,结果like是一个一个文档,要对应上属性。

$out,将结果保存到另外一个集合中。这个对于集合迁移非常有用。

目前数据库中只有以下3个集合。

通过查询结果不使用$out输出到其它集合中

执行以下结果,将输出的结果通过$out输出到like集合中。这时候like不存在会自己创建

查看数据库中全部集合,多了一个like的集合

查询like集合的结果

结果重塑文档

重塑文档,就是在文档查询结果返回的时候,利用mongodb提供的函数对文档处理,而不用读取到数据后人工代码去干预。

字符串函数

简单使用几个函数,其它函数都是大同小异的用法

算术运算函数

日期函数

逻辑函数

集合函数

其它函数

关注微信公众号(程序员小兔)不定期分享技术

MongoDB之聚合查询相关推荐

  1. mongodb高级聚合查询

    在工作中会经常遇到一些mongodb的聚合操作,特此总结下.mongo存储的可以是复杂类型,比如数组.对象等mysql不善于处理的文档型结构,并且聚合的操作也比mysql复杂很多. 注:本文基于 mo ...

  2. springboot集成mongoDB高级聚合查询,关联查询

    目录 mongoDB的常用操作符 mongoDB的聚合管道符号 比较操作符 逻辑运算符? 注意注意注意? 数学运算符 mongoDB案例 ? ? ? ? 插入测试数据 ?mongodb的阶段操作符号 ...

  3. MongoDB的使用学习之(七)MongoDB的聚合查询(spring-data-mongodb两种方式)附项目源码

    虽然只看了这一篇文章,但应该这个系列的文件应该都不错. http://www.cnblogs.com/ontheroad_lee/p/3756247.html 铛铛铛--项目源码下载地址:http:/ ...

  4. springboot集成mongoDB高级聚合查询,关联查询,lookup.let多条件关联查询。

    目录 mongoDB的常用操作符 mongoDB的聚合管道符号 比较操作符 逻辑运算符 注意坑 数学运算符 mongoDB案例 插入测试数据 mongodb的阶段操作符号 $match: $count ...

  5. mongodb索引生成HTML页面,mongodb高阶:索引创建、聚合查询、复制集、分片、创建备份和部署...

    先前我们讨论了mongodb的进阶查询:投影查询.分页查询以及对查询结果进行排序,从本节起我们开始学习mongodb相关的高级技术,首先我们会讨论mongodb如何创建索引,索引是数据库中最重要的东西 ...

  6. Mongodb使用之Aggregation聚合查询:.group()/.project()/.and().previousOperation()等api的使用

    最近在项目中遇到了Mongodb在聚合查询上的应用,在这里做一个记录. Spring Data MongoDB 中的聚合框架支持基于以下关键抽象:Aggregation.AggregationDefi ...

  7. mongo java aggregate_Java中使用mongodb的aggregate聚合查询

    首先,我们在数据库中,mongodb的聚合查询是这样写. db.getCollection('parking_record').aggregate( {$match : {"appId&qu ...

  8. mongodb聚合查询优化_MongoDB聚合查询详解

    聚合操作主要用于处理数据并返回计算结果.聚合操作将来自多个文档的值组合在一起,按条件分组后,再进行一系列操作(如求和.平均值.最大值.最小值)以返回单个结果. MongoDB 提供了三种执行聚合的方法 ...

  9. MongoDB数据库(5.mongodb的聚合操作以及mongodb的高级查询2)

    聚合aggregate 聚合(aggregate) 是基于数据处理的聚合管道,每个文档通过一个由多个阶段(stage) 组成的管道,可以对每个阶段的  管道进行分组.过滤等功能,然后经过一系列的处理, ...

最新文章

  1. 鸿蒙系统全面解析,诞生背景、技术细节生态圈一文看懂
  2. hdu 6185 Covering 矩阵快速幂
  3. 19行代码AC——例题 6-2 铁轨(Rails, UVa 514)——解题报告
  4. 2013年4月 计算机网络原理答案,2013年4月份自学考试计算机网络原理04741答案
  5. python的pip换源_浅析Python3 pip换源问题
  6. 前端学习(2467):在前端页面中引入百度地图
  7. oracle启动监听读取哪个文件,监听服务启动及数据文件恢复oracle数据库
  8. poj1182(并查集)
  9. Swift学习笔记_数据类型_整数类型
  10. 使用idea上传项目到gitHub
  11. 题解 P1137 【旅行计划】
  12. 本地仓库的基本操作与概念——Git的学习与使用(三)
  13. [转载] Python 完整实现的简单遗传算法(SGA)
  14. 转换器(Converter)——Struts 2.0中的魔术师
  15. 卡巴斯基2006以上版本与金山词霸 的冲突
  16. PHP无损调整照片大小,怎么无损放大图片,批量修改图片大小而不失真,照片无损放大软件...
  17. 如何弄ad装配图_AD打印装配图的细节
  18. 《水浒传》读后(5) 其它人物
  19. 他山之石 | 腾讯音乐知识图谱搜索实践
  20. 云服务器 ipv6,开通IPv6

热门文章

  1. 实现不同编程语言间的自由代码转换需要注意些什么?【经验分享】
  2. CorelDRAW记事本写实图标的制作流程
  3. 记一次AES密文解码之CryptJS能行其他算法不行的悲伤经历
  4. 人生路上陪你到终的佛心慧语
  5. display:none和visibility:hidden和透明度的区别
  6. MacBook 上能玩的创意游戏推荐 |「Baba Is You」
  7. USBcan盒子(编程)
  8. 浅析LINQ带给开发者的五个优势
  9. could not insert ‘kvm_intel‘: Operation not supported
  10. 平均数、众数、中位数、极差、方差、标准差……