Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
$reduce
L'operatore di $reduce aggregazione in Amazon DocumentDB viene utilizzato per applicare cumulativamente una funzione di due argomenti agli elementi di un array per ridurre l'array a un singolo valore. Questo operatore è particolarmente utile per eseguire calcoli o trasformazioni complessi sui dati dell'array all'interno della pipeline di aggregazione.
Parametri
-
input: L'array da ridurre. -
initialValue: Il valore iniziale da utilizzare nell'operazione di riduzione. -
in: L'espressione da valutare su ogni elemento dell'inputarray. Questa espressione dovrebbe restituire un valore che verrà utilizzato nella successiva iterazione della riduzione.
Esempio (MongoDB Shell)
L'esempio seguente mostra come utilizzare l'$reduceoperatore per calcolare la somma di tutti gli elementi di un array.
Crea documenti di esempio
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] } ])
Esempio di interrogazione
db.orders.aggregate([ { $project: { total: { $reduce: { input: "$items", initialValue: 0, in: { $add: ["$$value", "$$this"] } } } } } ])
Output
[
{ "_id": 1, "total": 15 },
{ "_id": 2, "total": 60 },
{ "_id": 3, "total": 80 },
{ "_id": 4, "total": 300 }
]
L'$reduceoperatore esegue un'iterazione sull'itemsarray, aggiungendo ogni elemento al valore initialValue di 0. Il risultato è la somma di tutti gli elementi dell'array.
Esempi di codice
Per visualizzare un esempio di codice per l'utilizzo del $reduce comando, scegliete la scheda relativa alla lingua che desiderate utilizzare: