Mongo Shell - Console / Journal de débogage


147

Probablement une question stupide. Expérimenter avec le shell Mongo.

Je veux faire quelque chose comme:

matt@linuxvm:~/mongodb-linux-i686-1.2.3/bin$ ./mongo
MongoDB shell version: 1.2.3
url: test
connecting to: test
Thu Feb 25 20:57:47 connection accepted from 127.0.0.1:37987 #3
type "help" for help
> function test() { debug.log("hello") }
> test()
Thu Feb 25 20:58:06 JS Error: ReferenceError: debug is not defined (shell):0

En d'autres termes, comment puis-je générer une sortie vers la console lors de l'évaluation des fonctions JS à partir du shell Mongo. J'ai l'intention d'un script d'admin / populate que j'aimerais sortir des informations intéressantes.

J'ai essayé console.log, debug.log, enregistrez les plus évidents.

Réponses:


282

J'ai trouvé la réponse, c'est simplement print

print("sweetnesss");

93
printjson (chose) est un peu plus utile lorsqu'il s'agit d'objets
RobKohr

2

J'utilise généralement des scripts lorsque j'interagis avec le shell, j'ai donc écrit un objet Logging de base que je "charge (script)" dans le shell, puis j'utilise l'objet Logging pour appeler les niveaux de journalisation (débogage, info, avertissement, erreur). L'objet Logger utilise «print» et «printjson» à sa base. En outre, il contient un sprintf de base, un remplissage, un formatage d'enregistrement, etc. Si vous allez faire une quantité importante de travail de script avec mongodb, je recommande cette route. Déboguer les scripts mongodb donne l'impression d'être de retour à la programmation et au débogage avec des instructions print. La journalisation configurable rend cela un peu meilleur, mais je manque vraiment de pouvoir parcourir le code.


+1 pour le commentaire sur le débogage d'impression, je ne peux pas être plus d'accord. Partagez-vous votre code de journalisation sur GitHub ou ailleurs? J'envisageais de le faire moi-même, mais je n'ai pas encore beaucoup de code à partager. J'ai fourché github.com/rsdoiel/mongo-modules mais je n'ai encore rien ajouté.
Mark Edington

Je vais essayer de creuser ça.
gbegley

gbegley: Excellent, ça ressemble à quelque chose qui me sera utile. Je vous remercie de prendre le temps de fournir cela à la communauté mongodb.
Mark Edington
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.