Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
$reduce
L'opérateur d'$reduceagrégation dans Amazon DocumentDB est utilisé pour appliquer une fonction de deux arguments cumulativement aux éléments d'un tableau afin de réduire le tableau à une seule valeur. Cet opérateur est particulièrement utile pour effectuer des calculs ou des transformations complexes sur des données matricielles au sein du pipeline d'agrégation.
Paramètres
-
input: le tableau à réduire. -
initialValue: valeur initiale à utiliser dans l'opération de réduction. -
in: expression à évaluer sur chaque élément duinputtableau. Cette expression doit renvoyer une valeur qui sera utilisée lors de la prochaine itération de la réduction.
Exemple (MongoDB Shell)
L'exemple suivant montre comment utiliser l'$reduceopérateur pour calculer la somme de tous les éléments d'un tableau.
Création d'exemples de documents
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] } ])
Exemple de requête
db.orders.aggregate([ { $project: { total: { $reduce: { input: "$items", initialValue: 0, in: { $add: ["$$value", "$$this"] } } } } } ])
Sortie
[
{ "_id": 1, "total": 15 },
{ "_id": 2, "total": 60 },
{ "_id": 3, "total": 80 },
{ "_id": 4, "total": 300 }
]
L'$reduceopérateur parcourt le items tableau en ajoutant chaque élément à initialValue 0. Le résultat est la somme de tous les éléments du tableau.
Exemples de code
Pour afficher un exemple de code d'utilisation de la $reduce commande, choisissez l'onglet correspondant à la langue que vous souhaitez utiliser :