$stdDevSamp
¶3.2版中的新功能。
计算输入值的样本标准偏差。如果值包含总体样本的数据样本,以用于对该总体进行概括,则使用。$stdDevSamp
忽略非数字值。
如果这些值代表整个数据种群,或者您不希望对更大的种群进行概括,请
$stdDevPop
改用。
$stdDevSamp
可在以下阶段使用:
$group
$project
$addFields
(从MongoDB 3.4开始可用)$set
(从MongoDB 4.2开始可用)$replaceRoot
(从MongoDB 3.4开始可用)$replaceWith
(从MongoDB 4.2开始可用)$match
包含$expr
表达的阶段在$group
阶段中使用时,$stdDevSamp
具有以下语法,并为通过键共享同一组的一组文档返回指定表达式的样本标准差:
在其他受支持的阶段中使用时,
$stdDevSamp
返回每个文档的指定表达式或表达式列表的样本标准偏差,并且具有以下两种语法之一:
$stdDevSamp
有一个指定的表达式作为其操作数:
$stdDevSamp
有一个指定表达式的列表作为其操作数:
$stdDevSamp
忽略非数字值。如果求和的所有操作数均为非数字,则$stdDevSamp
返回null
。
如果样本包含单个数值,则$stdDevSamp
返回null
。
在此$group
阶段,如果表达式解析为数组,$stdDevSamp
则将操作数视为非数值。
在其他受支持的阶段:
$stdDevSamp
遍历数组以对数组的数字元素进行操作以返回单个值。$stdDevSamp
则不会遍历数组,而是将数组视为非数字值。集合users
包含具有以下字段的文档:
为了计算用户样本的标准差,以下聚合操作首先使用$sample
管道对100个用户进行采样,然后使用$stdDevSamp
计算样本用户的标准差。
该操作返回如下结果: