MapReduce est une méthode pour traiter et générer de grands ensembles de données avec un traitement parallèle, distribué sur un certain nombre de serveurs ou de machines. Dans MongoDB, vous pouvez utiliser MapReduce pour effectuer des opérations en lots sur vos données.
Voici comment vous pouvez utiliser MapReduce dans MongoDB :
1. Définir une fonction Map : La fonction Map itère sur chaque document de la collection et émet une clé, une valeur pour chaque document.
Exemple de code :
```
var mapFunction = function() {
emit(this.cle, this.valeur);
};
```
Dans cette fonction, ‘this’ se réfère au document sur lequel la fonction map est en train d’itérer. La fonction ‘emit’ est appelée pour chaque document.
1. Définir une fonction Reduce : La fonction Reduce est appelée avec une clé et un array de valeurs et renvoie une valeur réduite.
Exemple de code :
```
var reduceFunction = function(key, values) {
return Array.sum(values);
};
```
Dans cette fonction, ‘key’ est la clé émise par la fonction map et ‘values’ est le tableau des valeurs associées à cette clé.
1. Exécuter MapReduce : Vous pouvez exécuter MapReduce en utilisant la commande ‘mapReduce’.
Exemple de code :
```
db.collection.mapReduce(
mapFunction,
reduceFunction,
{ out: “map_reduce_example” }
);
```
Dans cet exemple, ‘mapFunction’ est la fonction map que vous avez définie, ‘reduceFunction’ est la fonction reduce que vous avez définie et ‘out’ est la collection de sortie où MongoDB stocke le résultat de l’opération MapReduce.
Il est important de noter que MapReduce dans MongoDB est moins performant que d’autres opérations comme l’agrégation, en raison de l’utilisation du JavaScript qui est plus lent et de l’effort de distribution et ramasser le travail parallélisé. Il est donc recommandé d’utiliser l’opération d’agrégation lorsque cela est possible.