C'è un modo per dire a Mongo di avere una bella stampa? Attualmente, tutto viene emesso su una singola riga ed è difficile da leggere, specialmente con array e documenti annidati.Abbastanza stampato nella shell MongoDB come predefinito
risposta
(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()
È possibile aggiungere
DBQuery.prototype._prettyShell = true
al file in $HOME/.mongorc.js
per consentire abbastanza di stampa a livello globale per impostazione predefinita.
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
+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! –
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
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/
È 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
Oh quindi credo .pretty() è pari a:
db.collection.find().forEach(printjson);
(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.
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.
Se si desidera l'output colorized + altri miglioramenti, consultare https://github.com/TylerBrock/mongo-hacker @SAFX –