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 a partir de un grupo de documentos de entrada.
También puedes usar $stdDevPop en estos otros contextos:
$stdDevPop (expression), que devuelve la desviación estándar poblacional de los valores numéricos en una matriz.$stdDevPop (window function), que se utiliza en la etapa$setWindowFieldspara calcular la desviación estándar de la población de valores de documentos en una ventana en particular.
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 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.
El siguiente ejemplo agrupa las 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 } ] )
La tubería precedente:
Utiliza
$matchpara filtrar las 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 agrupe por separado.Utiliza
$grouppara agrupar por director, contar películas y calcularstdDevRatingusando$stdDevPopenimdb.rating.Utiliza
$matchpara mantener solo a los directores con al menos 10 películas.Utiliza
$sortpara devolver los resultados en orden descendente segúnstdDevRating.Utiliza
$limitpara devolver los mejores resultados de 5.