Introduction à MongoDB

mapReduce

Paradigme de traitement de données pour condenser de grands volumes de données en résultats agrégés utiles. En termes très simples , la commande MapReduce prend deux entrées primaires , la fonction de mappage et la fonction de réducteur .

Un Mapper débutera par la lecture d'une collection de données pour construire une map avec les champs que nous souhaitons traiter. Puis cette paire clé, valeur est introduite dans un réducteur , qui traitera les valeurs.

>db.collection.mapReduce(
   function() {emit(key,value);},  //map function
   function(key,values) {return reduceFunction},   //reduce function
   {
      out: collection,
      query: document,
      sort: document,
      limit: number
   }
)
  • map: Fonction javascript qui mappe une valeur à une clé et emet la paire clé/valeur
  • reduce: Fonction javascript qui réduit ou regroupe tout les documents ayant la même clé
  • out: Spécifie l'emplacement du résulat de la specifies the de la map-reduce
  • query: Précise les critères de sélection en option pour sélectionner les documents
  • sort: Précise les critères de tri en option
  • limit: Indique le nombre maximal option de documents à retourner

Exemple:

Affichage du nombre des films en base mongo par genre:

>var map =function() {emit(this.genre,1);};

>var reduce = function(key, values) { return Array.sum(values)};

>var count = db.movies.mapReduce(map, reduce, {out: "movies_result"});

>db.movies_result.find();