定义
计算一群组文档值的样本示例差。
如果输入值表示数据总体中的示例,而您要从中概括总体数据,请使用 $stdDevSamp。如果这些值代表整个数据总体,请改用 $stdDevPop。
$stdDevSamp累加器可在以下阶段使用:
注意
消歧
本页描述了用作累加器时的 $stdDevSamp。累加器返回一群组输入文档的聚合值。
您还可以在其他上下文中使用 $stdDevSamp:
$stdDevSamp (expression),返回大量中数值的示例标准差。$stdDevSamp (window function),在$setWindowFields阶段用于计算窗口中值的示例标准差。
语法
{ $stdDevSamp: <expression> }
行为
结果类型
$stdDevSamp 以double形式返回输入值的示例标准差。
Non-Numeric Values
$stdDevSamp 忽略非数字值、空值和缺失字段。如果所有输入值都是非数字值或缺失值,$stdDevSamp 将返回 null。
单值
如果输入由单个数值组成,则 $stdDevSamp 返回 null。
例子
本页上的示例使用 sample_mflix 数据集中的数据。有关如何将此数据集加载到自管理MongoDB 部署中的详细信息,请参阅加载样本数据集。如果对示例数据库进行了任何修改,则可能需要删除并重新创建数据库才能运行本页上的示例。
此示例返回在至少拍摄了 10 部电影的导演中,IMDb 评分差异最大的五位导演。
db.movies.aggregate( [ { $match: { directors: { $exists: true }, "imdb.rating": { $type: "double" } } }, { $unwind: "$directors" }, { $group: { _id: "$directors", movieCount: { $sum: 1 }, stdDevSampRating: { $stdDevSamp: "$imdb.rating" } } }, { $match: { movieCount: { $gte: 10 } } }, { $sort: { stdDevSampRating: -1 } }, { $limit: 5 } ] )
上述管道: