对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
See how MongoDB 9.0 delivers up to 2x higher throughput.
MongoDB Branding Shape
Register now >
Docs 菜单

$stdDevSamp(累加器操作符)

$stdDevSamp

计算一群组文档值的样本示例差。

如果输入值表示数据总体中的示例,而您要从中概括总体数据,请使用 $stdDevSamp。如果这些值代表整个数据总体,请改用 $stdDevPop。

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

注意

消歧

本页描述了用作累加器时的 $stdDevSamp。累加器返回一群组输入文档的聚合值。

您还可以在其他上下文中使用 $stdDevSamp:

{ $stdDevSamp: <expression> }

$stdDevSamp 以double形式返回输入值的示例标准差。

$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
}
] )

上述管道:

  • 使用 $match过滤具有 directors字段和数字 imdb.rating 的电影。

  • 使用 $unwind 为每个主管信用创建单独的文档。

  • 使用 $group 按导演群组,使用 $sum 对电影进行计数,并在 imdb.rating 上使用 $stdDevSamp 计算 stdDevSampRating。

  • 使用第二个 $match 仅保留电影至少为 10 的导演。

  • 使用 $sort 按 stdDevSampRating 降序排序。

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

给本页内容打分