mongodb的聚合操作
1. mongodb的聚合是什么
聚合是基于数据处理的聚合管道,每个文档通过一个由多个阶段组成的管道,可以对每个阶段的管道进行分组,过滤等功能,然后经过一系列的处理,输出响应的结果。
语法:db.集合名.aggregate({管道:{表达式}})
2. mongodb的常用管道和表达式
2.1 常用管道命令
在mongodb中,问道处理完毕,用过管道进行下一次处理,常用管道命令如下
-
$group
:将集合中的文档分组,可用于统计结果 -
$match
:过滤数据,只输出符合条件的文档 -
$project
:修改输入文档的结构,如重命名,增加,删除字段,创建计算结果 -
$sort
:将输入文档排序后输出 -
$limit
:限制聚合管道返回的文档数 -
$skip
:跳过指定数量的文档,并返回余下的文档
2.2常用表达式
-
$sum
:计算总和,$sum:1表示以一倍计数 -
$avg
:计算平均值 -
$min
:获取最小值 -
$max
:获取最大值 -
$push
:在结果文档中插入值到一个数组中
3. 管道命令之$group
3.1 按照某个字段进行分组
$group
是所有聚合命令中用的最多的一个命令,用来将集合中的文档分组,可用于统计结果
db.stu.aggregate( {$group: { _id:"$gender", counter:{$sum:1} } } )