资讯专栏INFORMATION COLUMN

聚合管道aggregate

Me_Kun / 744人阅读

摘要:聚合管道介绍的聚合管道将文档在一个管道处理完毕后将结果传递给下一个管道处理。它是数据聚合的一个新框架,其概念类似于数据处理的管道。

聚合管道aggregate

aggregate介绍

MongoDB的聚合管道将MongoDB文档在一个管道处理完毕后将结果传递给下一个管道处理。管道操作是可以重复的。管道在Unix和Linux中一般用于将当前命令的输出结果作为下一个命令的参数。
aggregation 它是数据聚合的一个新框架,其概念类似于数据处理的管道。 每个文档通过一个由多个节点组成的管道,每个节点有自己特殊的功能(分组、过滤等),文档经过管道处理后,最后输出相应的结果。管道基本的功能有两个:
一是对文档进行“过滤”,也就是筛选出符合条件的文档
二是对文档进行“变换”,也就是改变文档的输出形式
其他的一些功能还包括按照某个指定的字段分组和排序等。而且在每个阶段还可以使用表达式操作符计算平均值和拼接字符串等相关操作。管道提供了一个MapReduce 的替代方案,MapReduce使用相对来说比较复杂,而管道的拥有固定的接口(操作符表达),使用比较简单,对于大多数的聚合任务管道一般来说是首选方法。

管道操作符介绍

$project:包含、排除、重命名和显示字段
$match:查询,需要同find()一样的参数
$limit:限制结果数量
$skip:忽略结果的数量
$sort:按照给定的字段排序结果
$group:按照给定表达式组合结果
$unwind:分割嵌入数组到自己顶层文件
$geoNear:返回基于接近地理空间点的有序的文档流

组聚合操作符介绍

$addToSet:返回在该组中的每个文档所选择的字段的所有唯一值的数组
$first:返回组中的第一个值
$last:返回组中的最后一个值
$max:返回组中的最大值
$min:返回组中的最小值
$avg:返回组中的平均值
$push:返回在该组中的每个文档所选择的字段的所有值的数组
$sum:返回组中的汇总值

#使用管道可以将多种不同的聚合统计记录同时返回

db.person.aggregate([{$group:{
      _id:"$name",
      count:{$sum:1},
      total:{$sum:"$age"},
      max:{$max:"$age"},
      min:{$min:"$age"},
      avg:{$avg:"$age"}
     }}])

{ "_id" : "jason", "count" : 2, "total" : 58, "max" : 30, "min" : 28, "avg" : 29}
{ "_id" : "lorraine", "count" : 2, "total" : 47, "max" : 25, "min" : 22, "avg" :23.5 }

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/19376.html

相关文章

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

    摘要:小结是聚合管道查询使用的方法,参数是数组,每个数组元素就是一个,中运用操作符对数据进行处理后再交由下一个,直到没有下个,就输出最终的结果,而数据的处理则是通过使用操作符,本文先简单介绍了一下有哪些常用的操作符,下一篇再详细说明。 前言:一般查询可以通过find方法,但如果是比较复杂的查询或者数据统计的话,find可能就无能为力了,这时也许你需要的是aggregate. 什么是聚合管道(...

    MSchumi 评论0 收藏0
  • MongoDB指南---16、聚合

    摘要:将返回结果限制为前个。所以,聚合的结果必须要限制在以内支持的最大响应消息大小。包含字段和排除字段的规则与常规查询中的语法一致。改变字符大小写的操作,只保证对罗马字符有效。只对罗马字符组成的字符串有效。 上一篇文章:MongoDB指南---15、特殊的索引和集合:地理空间索引、使用GridFS存储文件下一篇文章:MongoDB指南---17、MapReduce 如果你有数据存储在Mon...

    Keagan 评论0 收藏0
  • MongoDB指南---16、聚合

    摘要:将返回结果限制为前个。所以,聚合的结果必须要限制在以内支持的最大响应消息大小。包含字段和排除字段的规则与常规查询中的语法一致。改变字符大小写的操作,只保证对罗马字符有效。只对罗马字符组成的字符串有效。 上一篇文章:MongoDB指南---15、特殊的索引和集合:地理空间索引、使用GridFS存储文件下一篇文章:MongoDB指南---17、MapReduce 如果你有数据存储在Mon...

    _Zhao 评论0 收藏0
  • 【mongoDB查询进阶】聚合管道(二) -- 阶段操作符

    摘要:当在中使用时,累加器是针对每个分组使用的当在中使用时,累加器则是针对每个字面量起作用,具体用法下一篇文章阐述。另外再加以配合表达式操作符组成的表达式或者在或中使用累加器能查询统计的内容会更加的多样化。 上篇最后说到管道操作符,本篇文章将详细说一下管道操作符。 mongoDB查询进阶--聚合管道(一)回顾 什么是管道操作符(Aggregation Pipeline Operators) ...

    brianway 评论0 收藏0
  • 【mongoDB查询进阶】聚合管道(二) -- 阶段操作符

    摘要:当在中使用时,累加器是针对每个分组使用的当在中使用时,累加器则是针对每个字面量起作用,具体用法下一篇文章阐述。另外再加以配合表达式操作符组成的表达式或者在或中使用累加器能查询统计的内容会更加的多样化。 上篇最后说到管道操作符,本篇文章将详细说一下管道操作符。 mongoDB查询进阶--聚合管道(一)回顾 什么是管道操作符(Aggregation Pipeline Operators) ...

    flybywind 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<