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.
See how MongoDB 9.0 delivers up to 2x higher throughput.
MongoDB Branding Shape
Register now >
Docs Menu

$stdDevSamp (función de ventana)

$stdDevSamp

Devuelve la desviación estándar muestral de los valores en una ventana.

Nota

Desambiguación

Esta página describe $stdDevSamp cuando se utiliza como función de ventana.

También puedes usar $stdDevSamp en estos otros contextos:

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

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

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

Si la ventana contiene solo un documento, $stdDevSamp devuelve null.

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 calcular un campo de desviación estándar de muestra móvil para cada película musical a partir de 2009 y 2010. Cada documento recibe el valor $stdDevSamp calculado desde el inicio de su partición anual hasta el documento actual.

db.movies.aggregate( [
{
$match: {
genres: "Musical",
year: { $in: [ 2009, 2010 ] },
"imdb.rating": { $type: "double" }
}
},
{
$setWindowFields: {
partitionBy: "$year",
sortBy: { title: 1 },
output: {
stdDevSampRatingInYear: {
$stdDevSamp: "$imdb.rating",
window: {
documents: [ "unbounded", "current" ]
}
},
rankInYear: {
$documentNumber: {}
}
}
}
},
{
$project: {
_id: 0,
title: 1,
year: 1,
"imdb.rating": 1,
stdDevSampRatingInYear: 1,
rankInYear: 1
}
},
{ $sort: { year: 1, title: 1 } }
] )

La tubería precedente:

  • Utiliza $match para filtrar películas 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 $stdDevSamp con una ventana de documentos de [ "unbounded", "current" ] para crear los siguientes campos para cada documento:

    • stdDevSampRatingInYear: la desviación estándar de la muestra móvil de imdb.rating.

    • rankInYear: un número de fila por partición asignado por $documentNumber.

    El primer documento de cada partición tiene un solo valor en su ventana, por lo que stdDevSampRatingInYear es null. Cada documento subsiguiente añade un valor más a la ventana.

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

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