Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
$reduce
Der $reduce Aggregationsoperator in Amazon DocumentDB wird verwendet, um eine Funktion mit zwei Argumenten kumulativ auf die Elemente eines Arrays anzuwenden, um das Array auf einen einzigen Wert zu reduzieren. Dieser Operator ist besonders nützlich für die Durchführung komplexer Berechnungen oder Transformationen von Array-Daten innerhalb der Aggregationspipeline.
Parameter
-
input: Das Array, das reduziert werden soll. -
initialValue: Der Anfangswert, der bei der Reduktionsoperation verwendet werden soll. -
in: Der Ausdruck, der für jedes Element desinputArrays ausgewertet werden soll. Dieser Ausdruck sollte einen Wert zurückgeben, der in der nächsten Iteration der Reduktion verwendet wird.
Beispiel (MongoDB Shell)
Das folgende Beispiel zeigt, wie der $reduce Operator verwendet wird, um die Summe aller Elemente in einem Array zu berechnen.
Erstellen Sie Beispieldokumente
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] } ])
Beispiel für eine Abfrage
db.orders.aggregate([ { $project: { total: { $reduce: { input: "$items", initialValue: 0, in: { $add: ["$$value", "$$this"] } } } } } ])
Ausgabe
[
{ "_id": 1, "total": 15 },
{ "_id": 2, "total": 60 },
{ "_id": 3, "total": 80 },
{ "_id": 4, "total": 300 }
]
Der $reduce Operator iteriert über das items Array und fügt jedes Element dem initialValue Wert 0 hinzu. Das Ergebnis ist die Summe aller Elemente im Array.
Codebeispiele
Um ein Codebeispiel für die Verwendung des $reduce Befehls anzuzeigen, wählen Sie die Registerkarte für die Sprache, die Sie verwenden möchten: