web-dev-qa-db-fra.com

Jolie impression dans le shell MongoDB par défaut

Y a-t-il un moyen de dire à Mongo de jolies impressions? Actuellement, tout est sorti sur une seule ligne et il est difficile à lire, en particulier avec les tableaux et les documents imbriqués.

474
raffian

(note: ceci est la réponse à la version originale de la question, qui n'exigeait pas de "défaut")

Vous pouvez lui demander d'être jolie.

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

Vous pouvez ajouter

DBQuery.prototype._prettyShell = true

dans votre fichier dans $HOME/.mongorc.js pour permettre une belle impression globale par défaut.

396
staackuser2

(note: ceci est la réponse à la question mise à jour)

Vous pouvez simplement faire ceci sur la CLI:

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

Et cela produira toujours de jolis résultats.

47
Bhanu Chawla

Comme il s’agit d’un shell javascript, vous pouvez également utiliser toArray():

db.collection.find().toArray()

Cependant, cela imprimera tous les documents de la collection contrairement à pretty() qui vous permettra d’itérer. Voir: http://docs.mongodb.org/manual/reference/method/cursor.toArray/

17
Aafreen Sheikh

Oh, je suppose que .pretty () est égal à:

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

Essayez Mongo-hacker (module de nœud), il est toujours beau. https://github.com/TylerBrock/mongo-hacker

Plus il améliore le shell mongo (ne supporte que ver> 2.4, le ver actuel est 3.0), comme

  • Colorisation
  • Commandes Shell supplémentaires (nombre de documents/nombre de documents/etc.)
  • Ajouts d'API (db.collection.find ({...}). Last (), db.collection.find ({...}). Reverse (), etc.)
  • Cadre d'agrégation

J'utilise depuis la production, pas de problèmes pour le moment.

8
Gaurav Gandhi

Je suis arrivé à la question mais je ne savais pas comment l’imprimer à partir d’un mongo chargé de l’extérieur. Alors:

Ceci fonctionne pour la console: et est préférable dans la console, mais ne fonctionne pas dans le javascript externe chargé par mongo:

db.quizes.find().pretty()

Ceci fonctionne en javscript externe chargé de mongo:

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