Mongo Shell - Konsolen- / Debug-Protokoll


147

Wahrscheinlich eine dumme Frage. Experimentieren mit Mongo Shell.

Ich möchte so etwas tun wie:

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

Mit anderen Worten, wie kann ich bei der Auswertung von JS-Funktionen in der Mongo-Shell auf die Konsole ausgeben? Ich beabsichtige ein Admin / Populate-Skript, mit dem ich einige nette Informationen ausgeben möchte.

Ich habe console.log, debug.log ausprobiert und die offensichtlichen protokolliert.

Antworten:


281

Ich habe die Antwort gefunden, es ist einfach print

print("sweetnesss");

93
printjson (Ding) ist ein wenig nützlicher im Umgang mit Objekten
RobKohr

2

Normalerweise verwende ich Skripte, wenn ich mit der Shell interagiere. Deshalb habe ich ein grundlegendes Protokollierungsobjekt geschrieben, das ich in die Shell "lade (Skript)", und dann das Protokollierungsobjekt verwendet, um Protokollierungsstufen (Debug, Info, Warnung, Fehler) aufzurufen. Das Logger-Objekt verwendet im Kern 'print' und 'printjson'. Außerdem enthält es ein grundlegendes Sprintf, Auffüllen, Formatieren von Datensätzen usw. Wenn Sie mit mongodb eine bedeutende Menge an Skriptarbeit ausführen möchten, empfehle ich diese Route. Das Debuggen von Mongodb-Skripten fühlt sich an, als wäre man wieder mit dem Programmieren und Debuggen mit print-Anweisungen vertraut. Die konfigurierbare Protokollierung macht dies etwas besser, aber ich vermisse es wirklich, den Code durchgehen zu können.


+1 für den Kommentar zum Druck-Debugging, konnte nicht mehr zustimmen. Teilen Sie Ihren Protokollcode auf GitHub oder irgendwo? Ich habe darüber nachgedacht, das selbst zu tun, aber ich habe noch nicht viel Code zum Teilen. Ich habe github.com/rsdoiel/mongo-modules gegabelt, aber noch nichts hinzugefügt.
Mark Edington

Ich werde versuchen, das auszugraben.
Begley

gbegley: Ausgezeichnet, sieht aus wie etwas, das für mich nützlich sein wird. Schätzen Sie, dass Sie sich die Zeit genommen haben, dies der Mongodb-Community zur Verfügung zu stellen.
Mark Edington
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.