MapReduce ist eine Methode, die darauf abzielt, große Datenmengen zu verarbeiten und zu generieren. Sie besteht aus zwei Funktionen: Map und Reduce. Bei MongoDB wird MapReduce für Batchverarbeitung von Daten und Aggregation genutzt.
Um MapReduce in MongoDB zu nutzen, folgen Sie diesen Schritten:
1. Definieren Sie die Map-Funktion: Diese Funktion “kartiert” die Daten, indem sie durch jede Eingabedokument läuft und die gewünschten Daten auswählt.
```javascript
var mapFunction = function() {
emit(this.key, this.value);
};
```
In diesem Fall ist “this.key” der Schlüssel, den Sie aus dem Dokument extrahieren möchten, und “this.value” ist der dazugehörige Wert.
2. Definieren Sie die Reduce-Funktion: Diese Funktion “reduziert” die Ergebnisse der Map-Funktion auf einen einfacheren Ausdruck.
```javascript
var reduceFunction = function(key, values) {
return Array.sum(values);
};
```
In diesem Beispiel fasst die Reduce-Funktion die Werte zusammen, die mit dem gleichen Schlüssel gruppiert sind.
3. Führen Sie die MapReduce-Funktion aus: Verwenden Sie die `.mapReduce()` Methode, um die Map- und Reduce-Funktionen auszuführen.
```javascript
db.collection.mapReduce(
mapFunction,
reduceFunction,
{ out: “map_reduce_example” }
)
```
In diesem Fall ist “collection” der Name der Sammlung, in der Sie MapReduce ausführen. “map_reduce_example” ist der Name der neuen Sammlung, die als Ergebnis der MapReduce-Funktion erstellt wird.
Diese Codebeispiele sind in JavaScript geschrieben, da MongoDB JavaScript für seine Funktionen nutzt.
Bitte beachten Sie, dass MapReduce in MongoDB im Allgemeinen weniger effizient ist als die Aggregationspipeline. Wo immer es möglich ist, sollten Sie Aggregationspipeline-Operationen anstelle von MapReduce verwenden.