Vous êtes sur la page 1sur 4

Exercice mongodb :

1/Afficher la liste de tous les livres

db.publish.find({'type' : 'Book'})

2/afficher la mliste de livre depuis 2014 ;

db.publish.find({'type' : 'Book' , Year :{ §gte : 2014 }})

3/trier les publications de l'auteur toro ichida par titre de livre et par page de début :

db.publish.aggregate($match :{authors : "Trou ishida" } {$sort : {}}])

4/ Afficher la liste des auteurs distincts :

db.publish.distinct("authors")
Question avec map reduce :

Syntaxe générale :

(Map) var mapfunction = Function () (emit (this.Year,1););

(Reduce) var reduceFunction = Function (Key,value) (return Array.sum(values););

(Filtre) var queryparam = {query: {}, out : "result_set"}

(Requête) db.collection.mapreduce(mapfunction,reduce,queryparam) ;

(Affichage) db.result_set.find();

Remarque :

on écrit map reduce sur 5 lignes

Les deux premières lignes sont variables en map reduce

Les 3 derniers sont statiques on le trouve dans chaque block du code map reduce

1/afficher pour chacun de livre le nombre des ces auteurs :

(Map)var mapFunction = function() {

emit(this._id, { numberOfAuthors: this.author.length });

};
(Reduce) var reduceFunction = function(key, values) {

var totalAuthors = 0;

values.forEach(function(value) {

totalAuthors += value.numberOfAuthors;

});

return { numberOfAuthors: totalAuthors };

};

(Filtre) var queryparam = {query: {}, out : "result_set"}

(Requête) db.collection.mapreduce(mapfunction,reduce,queryparam) ;

(Affichage) db.result_set.find();

2/maktebtoush

3/pour l’auteur Torou Ishida donner le nombre de publication par année :

(Map) var mapfunction = Function () {

if (Array.contains( this.author = Torou Ishida)

(emit (this.Year,1);); }

(Reduce) var reduceFunction = Function (Key,value) (return Array.sum(values););

(Filtre) var queryparam = {query: {}, out : "result_set"}

(Requête) db.collection.mapreduce(mapfunction,reduce,queryparam) ;

(Affichage) db.result_set.find();
4/ pour chaque auteur lister le nombre de publication associé à chaque année de publicité :

(Map) var mapfunction = Function (){

For (var i = 0 ; i < this.author.length ; i ++ )

(emit {auteur :this.author[i] , année :this.Year},1 );

(Reduce) var reduceFunction = Function (Key,value) (return Array.sum(values););

(Filtre) var queryparam = {query: {}, out : "result_set"}

(Requête) db.collection.mapreduce(mapfunction,reduce,queryparam) ;

(Affichage) db.result_set.find();

5/ maktebtoush

Vous aimerez peut-être aussi