2012-02-05 10 views

Respuesta

733

(nota: esta es la respuesta a la versión original de la pregunta, que no contaba con los requisitos de "default")

se le puede pedir a ser bastante.

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

Si desea una salida de color + otras mejoras, consulte https://github.com/TylerBrock/mongo-hacker @SAFX –

365

Puede añadir

DBQuery.prototype._prettyShell = true 

a su archivo en $HOME/.mongorc.js para permitir la impresión bonita a nivel mundial por defecto.

+10

Es posible que desee crear una función personalizada que lo desactive. Agregue esto a su '$ HOME /.mongorc.js': https://gist.github.com/mathrawka/6239405 Luego puede hacer algo como db.users.find(). feo() para obtenerlo sin imprimir bastante. – staackuser2

+4

+1 Esto es genial. Para aquellos que no tienen un archivo .mongorc.js en la carpeta $ HOME; puede crear este archivo y agregar comandos en él. Después de reiniciar shell, ¡funciona! –

+0

¿Cómo puedo verificar en un cli o en mongo shell que esta opción ha sido habilitada? Quiero decir, ¿hay un comando especial para ello, como 'mongo --checkConf 'pretty'', no llamando a' db.collection.find(). Limit (1)' – Green

14

Dado que es básicamente una cáscara Javascript, también se puede utilizar toArray():

db.collection.find().toArray() 

Sin embargo, esto va a imprimir todos los documentos de la colección a diferencia pretty() que le permitirá a iterar. Consulte : http://docs.mongodb.org/manual/reference/method/cursor.toArray/

+1

De manera interesante, desde la consola el '.toArray() 'produce salidas mejor formateadas que la función' .pretty() '. es decir: el primer registro de mi colección es diferente del resto (que puede ser el problema), pero '.pretty()' lo vacía como '{" _id ":" VERSIÓN "," v ":" 1.5 "} '- todo en una línea, donde' .toArray() 'formateó como el resto de los registros .. – wasatchwizard

14

Oh así que supongo .pretty() es igual a:

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

(nota: esta es la respuesta a la pregunta actualizada)

Sólo puede hacer esto en CLI:

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

Y siempre dará buenos resultados.

+0

No funcionó para mí, usando MongoDB 2.6.6 y (oh mi) ZSH. – jononomo

+1

Esto funcionó para mí a la perfección. | Versión de shell MongoDB: 2.6.7 y Oh-My-Zsh [versión e55c715] (https://github.com/robbyrussell/oh-my-zsh/tree/e55c715508a2f652fed741f2047c66dda2c6e5b0) – tjfwalker

6

Prueba de Mongo-hacker (módulo de nodos), siempre se ve bien. https://github.com/TylerBrock/mongo-hacker

Más que mejora la consola mongo (sólo soporta ver> 2.4, ver actual es 3.0), al igual que

  • Colorización
  • comandos shell adicionales (contar documentos/docs/recuento, etc.)
  • Adiciones API (db.collection.find ({...}). (última), db.collection.find ({...}). reverse(), etc.)
  • agregación Marco

Estoy usando durante el tiempo de producción, aún no hay problemas.

+0

¿Qué pasa si no tengo mongodb, solo Meteorito instalado? – pihentagy

+0

Nota: cuando instala mongo-hacker usando npm, aparentemente sobrescribe '$ HOME/.mongorc.js'. – Hubro

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

comando anterior hará que su resultado como este: Using Pretty command

la stu es el nombre de mi colección, usted debe utilizar su propio nombre de la colección en lugar de ello. Espero que la captura de pantalla te ayude en el buen sentido.

Cuestiones relacionadas