2012-02-05 14 views

risposta

733

(nota: questa è la risposta alla versione originale della domanda, che non hanno i requisiti per "default")

si può chiedere di essere abbastanza.

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

Se si desidera l'output colorized + altri miglioramenti, consultare https://github.com/TylerBrock/mongo-hacker @SAFX –

365

È possibile aggiungere

DBQuery.prototype._prettyShell = true 

al file in $HOME/.mongorc.js per consentire abbastanza di stampa a livello globale per impostazione predefinita.

+10

Si desidera creare una funzione personalizzata che la disabiliti per te. Aggiungi questo al tuo '$ HOME /.mongorc.js': https://gist.github.com/mathrawka/6239405 Quindi puoi fare qualcosa come db.users.find(). ugly() per ottenerlo senza una bella stampa. – staackuser2

+4

+1 Questo è fantastico. Per coloro che non hanno un file .mongorc.js nella cartella $ HOME; puoi creare questo file e aggiungere comandi al suo interno. Dopo aver riavviato la shell, funziona! –

+0

Come posso verificare in un cli o in mongo shell che questa opzione è stata abilitata? Voglio dire, c'è un comando speciale per questo, come 'mongo --checkConf 'pretty'', non chiamando' db.collection.find(). Limit (1) ' – Green

14

Dal momento che è fondamentalmente un guscio di javascript, è possibile utilizzare anche toArray():

db.collection.find().toArray() 

Tuttavia, questo sarà stampare tutti i documenti della collezione a differenza pretty() che vi permetterà di eseguire iterazioni. riferimento: http://docs.mongodb.org/manual/reference/method/cursor.toArray/

+1

È interessante notare che, dalla console,' .toArray() 'function output JSON formattato meglio della funzione' .pretty() '. es .: Il primo record della mia collezione è diverso dal resto (che potrebbe essere il problema), ma '.pretty()' lo scarica come '{" _id ":" VERSION "," v ":" 1.5 "} '- tutto su una riga, dove' .toArray() 'lo ha formattato come il resto dei record .. – wasatchwizard

14

Oh quindi credo .pretty() è pari a:

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

(nota: questa è la risposta alla domanda aggiornato)

Si può solo fare questo su la CLI:

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

Ed è sempre in uscita risultati piuttosto interessanti.

+0

Non ha funzionato per me - usando MongoDB 2.6.6 e (oh mio) ZSH. – jononomo

+1

Questo ha funzionato perfettamente per me. | Versione shell MongoDB: 2.6.7 e Oh-My-Zsh [versione e55c715] (https://github.com/robbyrussell/oh-my-zsh/tree/e55c715508a2f652fed741f2047c66dda2c6e5b0) – tjfwalker

6

Provate a Mongo-hacker (modulo nodo), è sempre bello. https://github.com/TylerBrock/mongo-hacker

Più migliora mongo shell (supporta solo ver> 2,4, ver corrente è 3.0), come

  • Colorizzazione
  • Ulteriori comandi di shell (COUNT documenti/docs count/etc)
  • Aggiunte API (db.collection.find ({...}). ultimo(), db.collection.find ({...}). reverse(), ecc)
  • aggregazione quadro

Sto usando per mentre in produzione env, nessun problema ancora.

+0

Cosa succede se non ho mongodb, solo meteora installata? – pihentagy

+0

Nota: quando installi mongo-hacker usando npm, apparentemente sovrascrive '$ HOME/.mongorc.js'. – Hubro

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

sopra comando renderà il vostro risultato come questo: Using Pretty command

il stu è il nome della mia collezione, è necessario utilizzare il proprio nome di una raccolta invece. Spero che lo screenshot ti aiuti in un buon modo.