2012-02-05 5 views

Répondre

733

(Note: Ceci est la réponse à la version originale de la question, qui n'a pas eu les exigences pour « défaut »)

Vous pouvez demander à être assez.

db.collection.find().pretty() 
+16

Si vous voulez une sortie colorisée + autres améliorations, consultez https://github.com/TylerBrock/mongo-hacker @SAFX –

365

Vous pouvez ajouter

DBQuery.prototype._prettyShell = true 

à votre dossier $HOME/.mongorc.js pour permettre l'impression assez globalement par défaut.

+10

Vous voudrez créer une fonction personnalisée qui la désactive pour vous. Ajoutez ceci à votre '$ HOME /.mongorc.js': https://gist.github.com/mathrawka/6239405 Ensuite, vous pouvez faire quelque chose comme db.users.find(). ugly() pour l'obtenir sans joli print. – staackuser2

+4

+1 C'est génial. Pour ceux qui n'ont pas de fichier .mongorc.js dans le dossier $ HOME; vous pouvez créer ce fichier et y ajouter des commandes. Après avoir redémarré shell, ça marche! –

+0

Comment puis-je vérifier dans un shell cli ou mongo que cette option a été activée? Je veux dire, y at-il une commande spéciale pour cela, comme 'mongo --checkConf 'pretty'', pas en appelant' db.collection.find() .limit (1) ' – Green

14

Comme il est fondamentalement un shell javascript, vous pouvez également utiliser toArray():

db.collection.find().toArray() 

Cependant, cela affichera tous les documents de la collection à la différence pretty() qui vous permettront d'itérer. Reportez-vous: http://docs.mongodb.org/manual/reference/method/cursor.toArray/

+1

Fait intéressant, de la console le' .toArray() 'affiche une sortie JSON mieux formatée que la fonction' .pretty() '. ie: Le premier enregistrement de ma collection est différent du reste (ce qui peut être le problème), mais '.pretty()' le vide comme '{" _id ":" VERSION "," v ":" 1.5 "} '- tous sur une ligne, où' .toArray() 'formaté comme le reste des enregistrements .. – wasatchwizard

14

Oh donc je suppose propriété de trois() est égal à:

db.collection.find().forEach(printjson); 
40

(Note: Ceci est réponse à la question mise à jour)

Vous pouvez simplement le faire sur la CLI:

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

Et il va toujours produire de jolis résultats.

+0

N'a pas fonctionné pour moi - en utilisant MongoDB 2.6.6 et (oh mon) ZSH. – jononomo

+1

Cela a fonctionné pour moi parfaitement. | Version du shell MongoDB: 2.6.7 et Oh-My-Zsh [version e55c715] (https://github.com/robbyrussell/oh-my-zsh/tree/e55c715508a2f652fed741f2047c66dda2c6e5b0) – tjfwalker

6

Essayez Mongo-hacker (module de noeud), il imprime toujours. https://github.com/TylerBrock/mongo-hacker

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

  • colorisation
  • commandes shell supplémentaires (comptage des documents/comptage docs/etc)
  • Ajouts API (db.collection.find ({...}). (dernier), db.collection.find ({...}). inverse(), etc.)
  • cadre d'agrégation

J'utilise pour le moment en production env, pas encore de problèmes.

+0

Et si je n'ai pas mongodb, juste météore installé? – pihentagy

+0

Remarque: lorsque vous installez mongo-hacker en utilisant npm, il écrase apparemment '$ HOME/.mongorc.js'. – Hubro

1
db.collection.find().pretty() 

commande ci-dessus feront de votre résultat comme celui-ci: Using Pretty command

le stu est le nom de ma collection, vous devez utiliser votre propre nom de collection au lieu de cela. J'espère que la capture d'écran vous aidera dans une bonne voie.

Questions connexes