Definición
Calcula la desviación estándar muestral de los valores en un grupo de documentos.
Utilice $stdDevSamp si los valores de entrada representan una muestra de una población de datos a partir de la cual desea generalizar sobre dicha población. Si los valores representan la totalidad de la población de datos, utilice $stdDevPop en su lugar.
El acumulador $stdDevSamp está disponible en estas etapas:
Nota
Desambiguación
Esta página describe $stdDevSamp cuando se utiliza como acumulador. Los acumuladores devuelven un valor agregado a partir de un grupo de documentos de entrada.
También puedes usar $stdDevSamp en estos otros contextos:
$stdDevSamp (expression), que devuelve la desviación estándar de la muestra de valores numéricos en una matriz.$stdDevSamp (window function), que se utiliza en la etapa$setWindowFieldspara calcular la desviación estándar de la muestra de valores en una ventana.
Sintaxis
{ $stdDevSamp: <expression> }
Comportamiento
Tipo de resultado
$stdDevSamp devuelve la desviación estándar muestral de los valores de entrada como un double.
Non-Numeric Values
$stdDevSamp Ignora los valores no numéricos, los valores nulos y los campos faltantes. Si todos los valores de entrada no son numéricos o faltan, $stdDevSamp devuelve null.
Valor único
Si la entrada consiste en un único valor numérico, $stdDevSamp devuelve null.
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 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 }, stdDevSampRating: { $stdDevSamp: "$imdb.rating" } } }, { $match: { movieCount: { $gte: 10 } } }, { $sort: { stdDevSampRating: -1 } }, { $limit: 5 } ] )
La tubería precedente:
Utiliza
$matchpara filtrar las películas que tienen un campodirectorsy un valor numéricoimdb.rating.Utiliza
$unwindpara crear un documento separado para cada crédito de director.Utiliza
$grouppara agrupar por director, cuenta las películas con$sumy calculastdDevSampRatingusando$stdDevSampenimdb.rating.Utiliza un segundo
$matchpara mantener solo a los directores con al menos 10 películas.Utiliza
$sortpara ordenar porstdDevSampRatingde forma descendente.Utiliza
$limitpara devolver los mejores resultados de 5.