AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。

$stdDevPop(アキュムレータ演算子)

$stdDevPop

ドキュメントのグループ全体における値の母集団標準偏差を計算します。値が表現したいデータの母集団全体を網羅しており、一般化したくない場合は、$stdDevPop を使用します。

値が母集団からのサンプルのみを表す場合は、代わりに $stdDevSamp を使用します。

$stdDevPop アキュムレータは次のステージで使用可能です。

注意

曖昧さ回避

このページでは、$stdDevPop をアキュムレータとして使用する場合について説明します。アキュムレータは、入力ドキュメントのグループ全体で集計値を返します。

$stdDevPop は、これらの他のコンテキストでも使用できます。

{ $stdDevPop: <expression> }

式の詳細については、「式 」を参照してください。

$stdDevPop 入力値の母集団標準偏差をdoubleとして返します。

$stdDevPop 欠落値を含む数値以外の値を無視します。入力値がすべて非数値の場合、$stdDevPop は null を返します。

入力が単一の数値で構成されている場合、$stdDevPopは0を返します。

このページの例では、sample_mflix データセット のデータを使用しています。自己管理型 MongoDB 配置にこのデータセットをロードする方法の詳細については、「サンプル データセットのロード」を参照してください。サンプル データベースに何らかの変更を加えた場合は、今ページの例を実行するには、データベースを削除して再作成する必要がある可能性があります。

次の例では、映画を監督別にグループ化し、10本以上の映画を手がけた監督の中から、最も多様なIMDb評価を持つ5人の監督を返します。

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 を使用して、役員と映画の組み合わせごとに 1 ドキュメントを作成します。そのため、各役員と映画の組み合わせは分けてグループ化されます。

  • $group を使用して、役員別にグループ化し、映画をカウントし、および imdb.rating について $stdDevPop を使用して stdDevRating を計算します。

  • $match を使用して、少なくとも 10 本の映画を持つ役員のみを維持します。

  • $sort を使用して、stdDevRating の降順で結果を返します。

  • $limit を使用して上位 5 件の結果を返します。

このページを評価