一、聚合操作
常用管道:
$group:将集合中的文档分组,可用于统计结果
$match:过滤数据,只输出符合条件的文档
$project:修改输入文档的结构,如重命名、增加、删除字段、创建计算结果
$sort:将输入文档排序后输出
$limit:限制聚合管道返回的文档数
$skip:跳过指定数量的文档,并返回余下的文档
$unwind:将数组类型的字段进行拆分
常用表达式:
$sum:计算总和,$sum:1 同count表示计数
$avg:计算平均值
$min:获取最小值
$max:获取最大值
$push:在结果文档中插入值到一个数组中
$first:根据资源文档的排序获取第一个文档数据
$last:根据资源文档的排序获取最后一个文档数据
为了便于后续操作,创建以下集合:
1.1 $group
1.1.1 统计学生总人数、平均年龄:
1.1.2 分别统计男生、女生的总人数:
1.1.3 分别统计男生、女生的平均成绩:
1.2 $match
1.2.1 统计年龄大于15的男生、女生人数:
1.2.2 统计成绩大于80的男生、女生人数:
1.2.3 统计成绩低于80的人数及具体人名字:
1.3 $sort、$skip、$limit
统计成绩大于80的男生、女生人数,统计结果按升序排序,只显示第二条数据: