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.
$reduce
El operador de $reduce agregación de Amazon DocumentDB se utiliza para aplicar una función de dos argumentos de forma acumulativa a los elementos de una matriz con el fin de reducir la matriz a un único valor. Este operador es particularmente útil para realizar cálculos o transformaciones complejos en los datos de una matriz dentro del proceso de agregación.
Parámetros
-
input: La matriz que se va a reducir. -
initialValue: El valor inicial que se utilizará en la operación de reducción. -
in: la expresión que se va a evaluar en cada elemento de lainputmatriz. Esta expresión debe devolver un valor que se utilizará en la siguiente iteración de la reducción.
Ejemplo (MongoDB Shell)
El siguiente ejemplo muestra cómo utilizar el $reduce operador para calcular la suma de todos los elementos de una matriz.
Cree documentos de muestra
db.orders.insertMany([ { "_id": 1, "items": [1, 2, 3, 4, 5] }, { "_id": 2, "items": [10, 20, 30] }, { "_id": 3, "items": [5, 15, 25, 35] }, { "_id": 4, "items": [100, 200] } ])
Ejemplo de consulta
db.orders.aggregate([ { $project: { total: { $reduce: { input: "$items", initialValue: 0, in: { $add: ["$$value", "$$this"] } } } } } ])
Salida
[
{ "_id": 1, "total": 15 },
{ "_id": 2, "total": 60 },
{ "_id": 3, "total": 80 },
{ "_id": 4, "total": 300 }
]
El $reduce operador itera sobre la items matriz, añadiendo cada elemento a initialValue 0. El resultado es la suma de todos los elementos de la matriz.
Ejemplos de código
Para ver un ejemplo de código para usar el $reduce comando, elija la pestaña correspondiente al idioma que desee usar: