ventajas que español desventajas caracteristicas mongodb io mongodb-query mongo-shell

mongodb - que - Imprimir la salida de consulta de Mongo en un archivo mientras está en el shell mongo



mongodb español (3)

2 días de edad con Mongo y tengo un fondo SQL así que tengan paciencia conmigo. Al igual que con mysql, es muy conveniente estar en la línea de comandos de MySQL y enviar los resultados de una consulta a un archivo en la máquina. Intento entender cómo puedo hacer lo mismo con Mongo, mientras estoy en el caparazón

Puedo obtener fácilmente el resultado de una consulta que quiero al estar fuera del shell y ejecutar el siguiente comando:

mongo localhost:27017/dbname --eval "printjson(db.collectionName.findOne())" >> sample.json

La forma anterior está bien, pero me requiere salir de la consola mongo o abrir una nueva pestaña terminal para ejecutar este comando. Sería muy conveniente si pudiera hacer esto sin dejar de estar dentro del caparazón.

PD: la pregunta es una derivación de una pregunta que publiqué en SO


Si invoca el shell con script-file, db address y --quiet arguments, puede redirigir el resultado (hecho con print () por ejemplo) a un archivo:

mongo localhost/mydatabase --quiet myScriptFile.js > output


AFAIK, no hay una opción interactiva para la salida al archivo, hay una pregunta SO anterior relacionada con esto: Imprimir la salida del shell mongodb en el archivo

Sin embargo, puede registrar toda la sesión de shell si invoca el shell con el comando tee:

$ mongo | tee file.txt MongoDB shell version: 2.4.2 connecting to: test > printjson({this: ''is a test''}) { "this" : "is a test" } > printjson({this: ''is another test''}) { "this" : "is another test" } > exit bye

Luego obtendrás un archivo con este contenido:

MongoDB shell version: 2.4.2 connecting to: test > printjson({this: ''is a test''}) { "this" : "is a test" } > printjson({this: ''is another test''}) { "this" : "is another test" } > exit bye

Para eliminar todos los comandos y conservar solo la salida json, puede usar un comando similar a:

tail -n +3 file.txt | egrep -v "^>|^bye" > output.json

Entonces obtendrás:

{ "this" : "is a test" } { "this" : "is another test" }


Puede ser útil para usted simplemente aumentar la cantidad de resultados que se muestran

En el shell de mongo> DBQuery.shellBatchSize = 3000

y luego puede seleccionar todos los resultados fuera de la terminal de una vez y pegarlos en un archivo de texto.

Es lo que voy a hacer :)

(desde: https://.com/a/3705615/1290746 )