Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

$stdDevPop (función de ventana)

$stdDevPop

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.

{
$setWindowFields: {
...
output: {
<field>: {
$stdDevPop: <expression>
}
}
}
}

$stdDevPop devuelve la desviación estándar de la población de los valores de entrada como un double.

La función de ventana $stdDevPop ignora los valores no numéricos. Si la ventana no contiene valores numéricos, $stdDevPop devuelve null.

Si la entrada consiste en un único valor numérico, $stdDevPop devuelve 0.

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 $match para filtrar los musicales de 2009 y 2010 con una calificación numérica de IMDb.

  • Utiliza $setWindowFields para particionar las películas por year y ordenarlas por title. La etapa utiliza $stdDevPop con una ventana de documentos de [ "unbounded", "current" ] para crear stdDevPopRatingInYear. El campo stdDevPopRatingInYear contiene la desviación estándar acumulada de la población de imdb.rating desde el inicio de la partición hasta el documento actual. $documentNumber asigna un número de fila por partición (rankInYear) a cada documento.

  • Utiliza $project para incluir title, year, imdb, stdDevPopRatingInYear y rankInYear en la salida.

  • Utiliza $sort para ordenar los resultados por año y título.

Califique esta página