Mongo Shell - Registro console / debug


147

Probabilmente una domanda stupida. Sperimentando con il guscio Mongo.

Voglio fare qualcosa del tipo:

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

In altre parole, come posso eseguire l'output sulla console durante la valutazione delle funzioni JS dalla shell Mongo. Intendo alcuni script admin / populate che mi piacerebbe produrre alcune informazioni interessanti.

Ho provato console.log, debug.log, registrare quelli ovvi ..

Risposte:


282

Ho trovato la risposta, è semplicemente print

print("sweetnesss");

93
printjson (cosa) è un po 'più utile quando si tratta di oggetti
RobKohr,

2

Di solito utilizzo gli script quando interagisco con la shell, quindi ho scritto un oggetto Logging di base che "carico (script)" nella shell e quindi uso l'oggetto Logging per chiamare i livelli di registrazione (debug, informazioni, avviso, errore). L'oggetto Logger usa 'print' e 'printjson' al suo interno. Inoltre, contiene uno sprintf di base, un padding, una formattazione dei record, ecc. Se stai per eseguire una quantità significativa di lavoro di script con mongodb, ti consiglio questo percorso. Il debug degli script mongodb sembra essere tornato all'introduzione alla programmazione e al debug con istruzioni di stampa. La registrazione configurabile rende questo un po 'migliore, ma mi manca davvero la possibilità di scorrere il codice.


+1 per il commento sul debug della stampa, non potrei essere più d'accordo. Stai condividendo il tuo codice di registrazione su GitHub o da qualche parte? Stavo pensando di farlo da solo, ma non ho ancora molto codice da condividere. Ho biforcato github.com/rsdoiel/mongo-modules ma non ho ancora aggiunto nulla.
Mark Edington,

Proverò a scavare.
Gbegley,

gbegley: Eccellente, sembra qualcosa che mi sarà utile. Apprezzo il tempo che hai dedicato per fornirlo alla comunità mongodb.
Mark Edington,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.