Mongodb : MapReduce

Messages postés
1
Date d'inscription
lundi 17 octobre 2016
Dernière intervention
17 octobre 2016
-
Bonjour,
Je teste la fonctionnalité MapReduce avec passage d'un objet.
pour le tester, je compte le nombre de mel pour une adresse dans une base Mongodb.
Je l'ai déjà fait autrement, mais là je veux tester le passage d'objet
l'exécution se passe bien, mais le résultat est, pour la somme : 1.#QNAN0
Si vous pouvez m'aider.
voici mon code :

db.Resultat.drop();
//la fonction map qui va chercher les adresses mel et passe un objet (simple pour le test)
var mapMel = function() {
              emit(this.EMAIL_AGNT, {nbre : 1});
    };
// la fonction reduce qui prend le tableau des objets et qui l'exploite pour en faire la somme
var reduceMel = function( melId, source) {
    var somme = 0;
    source.forEach(function(v) {
            somme +=v.nbre;
    });
 return somme;
};

db.MEL.mapReduce(mapMel, reduceMel, {out: "Resultat"} );

<underline>ou encore</underline>

db.Resultat.drop();


var mapMel = function() {
 var nombre = {nbre:1}
 emit(this.EMAIL_AGNT, nombre);
    };

var reduceMel = function( melId, source) {
    var somme = 0;
    source.forEach(function(v) {
            somme +=v.nbre;
    });
 return somme;
};

db.MEL.mapReduce(mapMel, reduceMel, {out: "Resultat"} );
Afficher la suite 

Votre réponse

1 réponse

Messages postés
4269
Date d'inscription
samedi 8 septembre 2007
Dernière intervention
29 août 2018
0
Merci
Salut,

Je ne connais pas Mongodb, mais ce que je peux te dire c'est que l'erreur indique que ce n est pas une valeur numérique.

Essaye donc de faire
 somme +=parseInt(v.nbre);


et redis moi.

naga
Commenter la réponse de nagaD.scar

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.