wake-up-neo.com

Hübscher Druck in der MongoDB-Shell als Standard

Gibt es eine Möglichkeit, Mongo zu einer hübschen Druckausgabe zu veranlassen? Gegenwärtig wird alles in einer einzigen Zeile ausgegeben und ist schwer zu lesen, insbesondere bei verschachtelten Arrays und Dokumenten.

474
raffian

(Hinweis: Dies ist die Antwort auf die Originalversion der Frage, für die keine Anforderungen für "default" vorhanden waren.)

Sie können es bitten, hübsch zu sein.

db.collection.find().pretty()
818

Du kannst hinzufügen

DBQuery.prototype._prettyShell = true

zu deiner Datei in $HOME/.mongorc.js, um Pretty Print standardmäßig global zu aktivieren.

396
staackuser2

(Hinweis: Dies ist die Antwort auf die aktualisierte Frage)

Sie können dies einfach auf der CLI tun:

echo DBQuery.prototype._prettyShell = true >> ~/.mongorc.js

Und es wird immer schöne Ergebnisse liefern.

47
Bhanu Chawla

Da es sich im Grunde genommen um eine Javascript-Shell handelt, können Sie auch toArray() verwenden:

db.collection.find().toArray()

Dadurch werden jedoch alle Dokumente der Sammlung gedruckt, im Gegensatz zu pretty(), mit denen Sie iterieren können. Siehe: http://docs.mongodb.org/manual/reference/method/cursor.toArray/

17
Aafreen Sheikh

Oh, also denke ich .pretty () ist gleich:

db.collection.find().forEach(printjson);
16
Goff

Versuchen Sie es mit Mongo-Hacker (Node-Modul), es druckt immer schön. https://github.com/TylerBrock/mongo-hacker

Mehr es verbessert Mongo Shell (unterstützt nur Ver> 2.4, aktuelle Ver ist 3.0), wie

  • Einfärbung
  • Zusätzliche Shell-Befehle (count documents/count docs/etc)
  • API-Ergänzungen (db.collection.find ({...}). Last (), db.collection.find ({...}). Reverse () usw.)
  • Aggregation Framework

Ich benutze für die Zeit in der Produktion env, noch keine Probleme.

8
Gaurav Gandhi

Ich habe die Frage beantwortet, konnte aber nicht herausfinden, wie ich sie aus einem extern geladenen Mongo drucken soll. Damit:

Dies funktioniert für die Konsole: und wird in der Konsole bevorzugt, funktioniert aber nicht in externem, von Mongo geladenem Javascript:

db.quizes.find().pretty()

Dies funktioniert in externem mongo-geladenem javscript:

db.quizes.find().forEach(printjson)
1
Witold Kaczurba