对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

$stdDevPop(累加器操作符)

$stdDevPop

计算一组文档中值的总体标准差。如果这些值包含您想表示的整个数据群体,并且您不希望将结果推算到更大的群体,请使用 $stdDevPop。

如果这些值仅代表总体中的示例,请改用 $stdDevSamp。

$stdDevPop 累加器可在以下阶段使用:

注意

消歧

本页介绍了 $stdDevPop 用作 累加器 时的情况。累加器返回跨一组输入文档的聚合值。

您还可以在这些其他上下文中使用 $stdDevPop:

{ $stdDevPop: <expression> }

有关表达式的更多信息,请参阅表达式。

$stdDevPop 以double形式返回输入值的总体标准差。

$stdDevPop 忽略非数字值,包括缺失值。如果所有输入值均非数字,则 $stdDevPop 会返回 null。

如果输入由单个数值组成,$stdDevPop 将返回 0。

本页上的示例使用来自 sample_mflix 数据集的数据。有关如何将此数据集加载到您的自管理 MongoDB 部署中的详细信息,请参阅 加载示例数据集。如果您对示例数据库进行了任何修改,您可能需要删除并重新创建数据库,才能运行此页面上的示例。

以下示例按照主管对电影进行分组,并返回在至少有 10 部电影的主管中,IMDb 评分变化最大的五位主管。

db.movies.aggregate( [
{
$match: {
directors: { $exists: true },
"imdb.rating": { $type: "double" }
}
},
{
$unwind: "$directors"
},
{
$group: {
_id: "$directors",
movieCount: { $sum: 1 },
stdDevRating: { $stdDevPop: "$imdb.rating" }
}
},
{
$match: { movieCount: { $gte: 10 } }
},
{
$sort: { stdDevRating: -1 }
},
{
$limit: 5
}
] )

前面的管道:

  • 使用 $match 来过滤器具有 directors 字段和数字 IMDb 评级的电影。

  • 使用 $unwind 为每部电影的每位主管创建一个文档,因此,每个主管-电影对都单独分组。

  • 使用 $group 按主管分组、计算电影数并使用 $stdDevPop 对 imdb.rating 计算 stdDevRating 。

  • 使用 $match 以保留至少拍摄了 10 部电影的主管。

  • 使用 $sort 按 stdDevRating 降序返回结果。

  • 使用 $limit 返回前 5 个结果。

给本页内容打分