累加器
累加器本来只能使用与 g r o u p 下 , 但 是 版 本 3.2 或 以 上 , 部 分 累 加 器 还 能 使 用 于 group下,但是版本3.2或以上,部分累加器还能使用于 group下,但是版本3.2或以上,部分累加器还能使用于project
- 当在$group中使用时,累加器是针对每个分组使用的
- 当在$project中使用时,累加器则是针对每个字面量起作用
常用累加器
| 操作符 | 简述 |
|---|---|
| $sum | 求和操作符,v3.2+可以用于 g r o u p 或 是 group或是 group或是project |
| $avg | 求均值操作符,v3.2+可以用于 g r o u p 或 是 group或是 group或是project |
| $first | 用于返回分组的第一个值,只能用于$group |
| $last | 用于返回分组的最后一个值,只能用于$group |
| $max | 用于返回分组的最大值,v3.2+可以用于 g r o u p 或 是 group或是 group或是project |
| $min | 用于返回分组的最小值,v3.2+可以用于 g r o u p 或 是 group或是 group或是project |
-
$sum 求和操作符
-
使用:
-
$group下使用:
{ $sum: <
expression> } -
$project下使用:
{ $sum: <
expression> }
or
{ $sum: [<expression1>,<expression2>… ] }
-
-
eg
- 获取每门课的总分

- 获取每门课的总分
-
说明:
值 结果 $sum : <field>}只含数字 $sum : <field>}含数字和非数字 $sum : <field>}非数字或不存在
-
-
$avg 求均值操作符
- 使用:
- $group下使用:
{ $avg: <expression> } - $project下使用:
{ $avg: <expression> }
or
{ $avg: [<expression1>,<expression2>… ] }
- $group下使用:
- eg
- 获取每门课的平均分

- 获取每门课的平均分
- 使用:
-
$first 求第一值操作符
- 使用:
{ $first:<expression>} - eg


- 使用:
-
$last 求最后值操作符
- 使用:
{ $last:<expression>} - eg


- 使用:
-
$max 求最大值操作符
- 使用:
-
$group下使用:
{ $max: <
expression> } -
$project下使用:
{ $max: <
expression> }
or
{ $max: [<expression1>,<expression2>… ] }
-
- eg
- 获取各科目的最高分

- 获取各科目的最高分
- 使用:
-
$min 求最小值操作符
- 使用:
-
$group下使用:
{ $min: <
expression> } -
$project下使用:
{ $min: <
expression> }
or
{ $min: [<expression1>,<expression2>… ] }
-
- eg
- 获取各科目的最低分

- 获取各科目的最低分
- 使用:
表达式操作符
表达式操作符主要用于在管道中构建表达式时使用,使用类似于函数那样需要参数,主要用于$project操作符中,用于构建表达式
本文深入探讨MongoDB中的累加器操作符,包括求和($sum)、求均值($avg)、求首值($first)、求末值($last)、求最大值($max)及求最小值($min),并解析这些操作符如何在$group和$project阶段应用,以实现高效的数据聚合和分析。
885

被折叠的 条评论
为什么被折叠?



