Study - mongodb 之 聚合(2)
累加器
累加器本来只能使用与project
- 当在$group中使用时,累加器是针对每个分组使用的
- 当在$project中使用时,累加器则是针对每个字面量起作用
常用累加器
操作符 | 简述 |
---|---|
$sum | 求和操作符,v3.2+可以用于project |
$avg | 求均值操作符,v3.2+可以用于project |
$first | 用于返回分组的第一个值,只能用于$group |
$last | 用于返回分组的最后一个值,只能用于$group |
$max | 用于返回分组的最大值,v3.2+可以用于project |
$min | 用于返回分组的最小值,v3.2+可以用于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操作符中,用于构建表达式