$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计算样本用户的标准差。
该操作返回如下结果: