Definición
Calcula la desviación estándar poblacional de los valores en un grupo de documentos. Utilice $stdDevPop si los valores abarcan toda la población de datos que desea representar y no desea generalizar.
Si los valores representan solo una muestra de la población, utilice $stdDevSamp en su lugar.
El acumulador $stdDevPop está disponible en estas etapas:
Nota
Desambiguación
Esta página describe $stdDevPop cuando se utiliza como acumulador. Los acumuladores devuelven un valor agregado en un grupo de documentos de entrada.
También puede usar $stdDevPop en estos otros contextos:
$stdDevPop (expression), que devuelve la desviación estándar poblacional de los valores numéricos en un arreglo.$stdDevPop (window function), que se utiliza en la etapa$setWindowFieldspara calcular la desviación estándar de la población de los valores de los documentos en una ventana determinada.
Sintaxis
{ $stdDevPop: <expression> }Para obtener más información sobre las expresiones, consulta Expresiones.
Comportamiento
Tipo de resultado
$stdDevPop devuelve la desviación estándar de la población de los valores de entrada como un double.
Valores no numéricos o faltantes
$stdDevPop ignora los valores no numéricos, incluidos los valores faltantes. Si todos los valores de entrada no son numéricos, $stdDevPop devuelve null.
Valor único
Si la entrada consta de un solo 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 la implementación autogestionada de MongoDB, consultar Cargar el conjunto de datos de muestra. Si realizó alguna modificación en las bases de datos de muestra, es posible que deba descartar y volver a crear las bases de datos para ejecutar los ejemplos de esta página.
El siguiente ejemplo agrupa películas por director y devuelve los cinco directores con las calificaciones de IMDb más variadas, entre los directores con al menos 10 películas.
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 }] )El pipeline anterior:
Utiliza
$matchpara usar filtro películas que tienen un campodirectorsy una calificación numérica de IMDb.Utiliza
$unwindpara crear un documento por director y por película, de modo que cada par director-película se agrupa por separado.Utiliza
$grouppara agrupar por director, contar películas y calcularstdDevRatingutilizando$stdDevPopenimdb.rating.Utiliza
$matchpara mantener solo a los directores con al menos 10 películas.Utiliza
$sortpara devolver resultados en orden descendente porstdDevRating.Utiliza
$limitpara devolver los 5 primeros resultados.