定義
特定のウィンドウ内のドキュメントからの母集団標準偏差を返します。
注意
曖昧さ回避
このページでは、ウィンドウ関数として使用する場合の$stdDevPop について説明します。
次の他のコンテキストでは $stdDevPop を使用することもできます。
$stdDevPop (accumulator)は、ドキュメントのグループ全体の値の母集団標準偏差を返します。$stdDevPop (expression)は、配列内の数値の母集団標準偏差を返します。
構文
{ $setWindowFields: { ... output: { <field>: { $stdDevPop: <expression> } } } }
動作
結果の型
$stdDevPop 入力値の母集団標準偏差をdoubleとして返します。
Non-Numeric Values
$stdDevPopウィンドウ関数は、数値以外の値を無視します。ウィンドウに数値が含まれていない場合、$stdDevPop は null を返します。
単一の値
入力が単一の数値で構成されている場合、$stdDevPop は 0 を返します。
例
このページの例では、 sample_mflix データセット のデータを使用します。このデータセットを自己管理型MongoDBデプロイにロードする 方法の詳細については、「 サンプル データセットをロードする 」を参照してください。サンプルデータベースに変更を加えた場合、このページの例を実行するには、データベースを削除して再作成する必要がある場合があります。
この例では、$setWindowFields 2009を使用して、 と2010 の論理和の実行中の母集団標準偏差を含むフィールドを各ドキュメントに追加します。
db.movies.aggregate( [ { $match: { genres: "Musical", year: { $in: [ 2009, 2010 ] }, "imdb.rating": { $type: "double" } } }, { $setWindowFields: { partitionBy: "$year", sortBy: { title: 1 }, output: { stdDevPopRatingInYear: { $stdDevPop: "$imdb.rating", window: { documents: [ "unbounded", "current" ] } }, rankInYear: { $documentNumber: {} } } } }, { $project: { _id: 0, title: 1, year: 1, "imdb.rating": 1, stdDevPopRatingInYear: 1, rankInYear: 1 } }, { $sort: { year: 1, title: 1 } } ] )
先行するパイプライン:
を使用して、数値 IMDb 評価を持つ と
$matchからのメッセージをフィルタリングします。20092010$setWindowFieldsを使用して、映画を で分割し、yeartitleでソートします。ステージでは、$stdDevPop[ "unbounded", "current" ]stdDevPopRatingInYearstdDevPopRatingInYearと のドキュメントウィンドウを使用して を作成します。imdb.ratingフィールドには、パーティションの先頭から現在のドキュメントまでの の実行中の母集団標準偏差が保持されます。$documentNumberは各ドキュメントにパーティションごとの行番号(rankInYear)を割り当てます。$projecttitleを使用して、 、year、imdb、stdDevPopRatingInYear、rankInYearを出力に含めます。$sortを使用して、結果を年とタイトルで並べ替えます。