Definición
Devuelve la desviación estándar poblacional de los valores de los documentos en una ventana determinada.
Nota
Desambiguación
Esta página describe $stdDevPop cuando se utiliza como función de ventana.
También puedes usar $stdDevPop en estos otros contextos:
$stdDevPop (accumulator), que devuelve la desviación estándar poblacional de los valores en un grupo de documentos.$stdDevPop (expression), que devuelve la desviación estándar poblacional de los valores numéricos en una matriz.
Sintaxis
{ $setWindowFields: { ... output: { <field>: { $stdDevPop: <expression> } } } }
Comportamiento
Tipo de resultado
$stdDevPop devuelve la desviación estándar de la población de los valores de entrada como un double.
Non-Numeric Values
La función de ventana $stdDevPop ignora los valores no numéricos. Si la ventana no contiene valores numéricos, $stdDevPop devuelve null.
Valor único
Si la entrada consiste en un único valor numérico, $stdDevPop devuelve 0.
Ejemplo
Los ejemplos de esta página utilizan datos del conjunto de datos sample_mflix. Para obtener más información sobre cómo cargar este conjunto de datos en su implementación autogestionada de MongoDB, consulte Cargar el conjunto de datos de ejemplo. Si realizó alguna modificación en las bases de datos de ejemplo, es posible que deba eliminarlas y volver a crearlas para ejecutar los ejemplos de esta página.
Este ejemplo utiliza $setWindowFields para agregar a cada documento un campo que contiene la desviación estándar poblacional acumulada de las calificaciones de IMDb para musicales de 2009 y 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 } } ] )
La tubería precedente:
Utiliza
$matchpara filtrar los musicales de 2009 y 2010 con una calificación numérica de IMDb.Utiliza
$setWindowFieldspara particionar las películas poryeary ordenarlas portitle. La etapa utiliza$stdDevPopcon una ventana de documentos de[ "unbounded", "current" ]para crearstdDevPopRatingInYear. El campostdDevPopRatingInYearcontiene la desviación estándar acumulada de la población deimdb.ratingdesde el inicio de la partición hasta el documento actual.$documentNumberasigna un número de fila por partición (rankInYear) a cada documento.Utiliza
$projectpara incluirtitle,year,imdb,stdDevPopRatingInYearyrankInYearen la salida.Utiliza
$sortpara ordenar los resultados por año y título.