Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
$ estándar DevSamp
Nuevo a partir de la versión 8.0.1.
El $stdDevSamp operador de Amazon DocumentDB calcula la desviación estándar muestral de los valores numéricos. Como acumulador, calcula la desviación estándar de la muestra entre los documentos de un grupo en la fase de proceso de agregación. $group Como expresión, calcula la desviación estándar muestral de una matriz de números. La desviación estándar de la muestra N-1 se utiliza como divisor (corrección de Bessel). Non-numeric los valores se ignoran. Si hay menos de dos valores numéricos, se devuelvenull.
Parámetros
-
expression: expresión que se resuelve en un valor numérico o en una matriz de valores numéricos.
Ejemplo (MongoDB Shell)
El siguiente ejemplo muestra cómo usar el $stdDevSamp operador para calcular la desviación estándar muestral de las puntuaciones por asignatura.
Cree documentos de muestra
db.scores.insertMany([ { subject: "math", score: 80 }, { subject: "math", score: 90 }, { subject: "math", score: 85 }, { subject: "math", score: 95 }, { subject: "science", score: 70 }, { subject: "science", score: 75 }, { subject: "science", score: 80 }, { subject: "science", score: 85 } ]);
Ejemplo de consulta
db.scores.aggregate([ { $group: { _id: "$subject", stdDev: { $stdDevSamp: "$score" } }} ]);
Salida
[
{ "_id": "math", "stdDev": 6.454972243679028 },
{ "_id": "science", "stdDev": 6.454972243679028 }
]
Ejemplo de uso de expresiones (MongoDB Shell)
El $stdDevSamp operador también se puede usar como expresión dentro de una $project etapa para calcular la desviación estándar muestral de un campo de matriz.
Cree documentos de muestra
db.experiments.insertMany([ { _id: 1, measurements: [10, 12, 14, 16, 18] }, { _id: 2, measurements: [5, 5, 5, 5, 5] }, { _id: 3, measurements: [2, 4, 6, 8, 10] } ]);
Ejemplo de consulta
db.experiments.aggregate([ { $project: { stdDev: { $stdDevSamp: "$measurements" } }} ]);
Salida
[
{ "_id": 1, "stdDev": 3.1622776601683795 },
{ "_id": 2, "stdDev": 0 },
{ "_id": 3, "stdDev": 3.1622776601683795 }
]
Ejemplo de uso de un operador de ventana (MongoDB Shell)
Nuevo a partir de la versión 8.0.2.
El $stdDevSamp operador también se puede utilizar como operador de ventanas en el $setWindowFields escenario. En este contexto, devuelve la desviación estándar muestral de la expresión especificada para los documentos de cada ventana. Especifique el operador en el output campo y, si lo desea, defina los límites de la ventana con un window documento.
Cree documentos de muestra
db.sensorReadings.insertMany([ { _id: 1, sensor: "A", time: 1, value: 2 }, { _id: 2, sensor: "A", time: 2, value: 4 }, { _id: 3, sensor: "A", time: 3, value: 6 }, { _id: 4, sensor: "B", time: 1, value: 10 }, { _id: 5, sensor: "B", time: 2, value: 12 } ]);
Ejemplo de consulta
En el ejemplo siguiente se dividen los documentossensor, se ordena cada partición y se devuelve la desviación estándar del ejemplo en ejecución value desde el principio de la partición hasta el documento actual. time
db.sensorReadings.aggregate([ { $setWindowFields: { partitionBy: "$sensor", sortBy: { time: 1 }, output: { runningStdDev: { $stdDevSamp: "$value", window: { documents: ["unbounded", "current"] } } } } } ]);
Salida
[
{ "_id": 1, "sensor": "A", "time": 1, "value": 2, "runningStdDev": null },
{ "_id": 2, "sensor": "A", "time": 2, "value": 4, "runningStdDev": 1.4142135623730951 },
{ "_id": 3, "sensor": "A", "time": 3, "value": 6, "runningStdDev": 2 },
{ "_id": 4, "sensor": "B", "time": 1, "value": 10, "runningStdDev": null },
{ "_id": 5, "sensor": "B", "time": 2, "value": 12, "runningStdDev": 1.4142135623730951 }
]
Cada documento se complementa con runningStdDev la desviación estándar de muestra value dentro de su partición hasta el documento actual, incluido. Cuando la ventana contiene menos de dos valores (el primer documento de cada partición), $stdDevSamp devuelvenull.
Ejemplos de código
Para ver un ejemplo de código sobre el uso $stdDevSamp del operador, seleccione la pestaña correspondiente al idioma que desee utilizar. Los siguientes ejemplos muestran el uso del acumulador (in$group), el uso de expresiones (in$project) y el uso del operador de ventana (in$setWindowFields):