As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
$reduce
O operador $reduce de agregação no Amazon DocumentDB é usado para aplicar uma função de dois argumentos cumulativamente aos elementos de uma matriz para reduzir a matriz a um único valor. Esse operador é particularmente útil para realizar cálculos ou transformações complexas em dados de matriz dentro do pipeline de agregação.
Parâmetros
-
input: A matriz a ser reduzida. -
initialValue: O valor inicial a ser usado na operação de redução. -
in: a expressão a ser avaliada em cada elemento dainputmatriz. Essa expressão deve retornar um valor que será usado na próxima iteração da redução.
Exemplo (MongoDB Shell)
O exemplo a seguir demonstra como usar o $reduce operador para calcular a soma de todos os elementos em uma matriz.
Crie documentos de amostra
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] } ])
Exemplo de consulta
db.orders.aggregate([ { $project: { total: { $reduce: { input: "$items", initialValue: 0, in: { $add: ["$$value", "$$this"] } } } } } ])
Saída
[
{ "_id": 1, "total": 15 },
{ "_id": 2, "total": 60 },
{ "_id": 3, "total": 80 },
{ "_id": 4, "total": 300 }
]
O $reduce operador itera sobre a items matriz, adicionando cada elemento ao initialValue de 0. O resultado é a soma de todos os elementos na matriz.
Exemplos de código
Para ver um exemplo de código para usar o $reduce comando, escolha a guia do idioma que você deseja usar: