mongodb: comment déboguer map/reduce sur mongodb shell
Je suis nouveau sur MongoDB, je suis à l'aide de map/reduce.
Quelqu'un peut-il me dire comment faire pour déboguer lors de l'utilisation de la carte/réduire? J'ai utilisé "print()" fonction, mais sur MongoDB shell, rien n'est imprimé. Voici ma fonction de réduction:
var reduce = function(key, values){
var result = {count: 0, host: ""};
for(var i in values){
result.count++;
result.host = values[i].host;
print(key+" : "+values[i]);
}
return result;
}
quand j'écris la fonction ci-dessus sur l'enveloppe et appuyez sur Entrée après avoir terminé, rien n'est imprimé sur la coquille. Est-il autre chose que je devrais faire un débogage?
Grâce
OriginalL'auteur Bhupi | 2011-09-23
Vous devez vous connecter pour publier un commentaire.
Il semble que
print()
états de réduire les fonctions sont écrites dans le fichier journal, plutôt que de la coquille. Donc, vérifiez votre fichier de log de votre sortie de débogage.Vous pouvez spécifier le fichier journal à l'aide d'un
--logpath D:\path\to\log.txt
paramètre lors du démarrage de l'mongod processus.Mac OS: /usr/local/var/log/mongodb/mongo.journal, je suis toujours incapable de voir quoi que ce soit dans le fichier journal.
tail-f /usr/local/var/log/mongodb/mongo.journal travaillé pour moi très bien. print("certains texte de débogage") appelé à partir à l'intérieur de réduire les sorties de fonctions de ce fichier. Assurez-vous que votre mongo est l'écriture des journaux de ce fichier. Peut-être que vous avez remplacé. Vérifiez votre mongo conf (/usr/local/etc/mongod.conf).
l'emplacement ci-dessus pour Mac OS n'a pas fonctionné pour moi. Vous êtes mieux de l'ajout de l'option --logpath drapeau avec votre propre fichier. Je peux voir le résultat lors de l'utilisation de print() de cette façon
OriginalL'auteur Niels van der Rest
Prendre un coup d'oeil à cette simple ligne MongoDB MapReduce débogueur qui permet d'obtenir des résultats d'agrégation sur les données de l'échantillon ainsi que l'exécution de l'étape-par-étape de débogage de Map /reduce /Finaliser les fonctions dans votre navigateur environnement de dev.
J'espère que ce sera utile.
http://targetprocess.github.io/mongo-mapreduce-debug-online/
Merci de lire "Comment puis-je écrire une bonne réponse?"
Votre débogueur est génial! tks 🙂
OriginalL'auteur user3493312
Il y a une page dédiée sur le mongodb site web qui est votre réponse : http://www.mongodb.org/display/DOCS/Troubleshooting+MapReduce
et bien évidemment votre réduction est faux : la ligne de résultat.count++ finira contenant le nombre d'éléments contenus dans le tableau de valeurs (carte de réduire paradigme) ne veut rien dire.
Votre fonction de réduction est de simplement retourner un "hasard" nom d'hôte (parce que mapreduce algo n'est pas prévisible sur l'réduire le contenu à n'importe quelle étape) et un nombre aléatoire.
Pouvez-vous expliquer ce que vous voulez faire ?
(j'imagine que vous voulez compter le nombre de "quelque chose" par hôte)
OriginalL'auteur kamaradclimber