Así que no sé mucho sobre MongoDB
. Tengo un RoboMongo
uso que me conecto a un MongoDB. Lo que necesito hacer es esto: hay una colección en ese MongoDB. Quiero exportar los datos de esa colección para poder guardarlos en un archivo.
Usé la interfaz para abrir los datos de la colección como texto e hice un Ctrl+ Ay los pegué en un archivo de texto. Sin embargo, descubrí que no se copian todos los datos y también que había muchos comentarios en los datos de texto que, naturalmente, rompen el JSON.
Me pregunto si RoboMongo tiene una Export As JSON
instalación para que pueda hacer una exportación limpia.
¡Se agradece cualquier sugerencia!
mongoexport
herramienta de línea de comandos estándar .mongoexport --uri='mongodb://[email protected]:27017/marketing' --collection=contacts --out=contacts.json
Respuestas:
Puede usar
tojson
para convertir cada registro a JSON en un script de shell MongoDB .Ejecute este script en RoboMongo:
Esto imprime todos los resultados como una matriz similar a JSON.
¡El resultado no es realmente JSON! Algunos tipos, como las fechas y los ID de objeto, se imprimen como llamadas a la función de JavaScript, por ejemplo,
ISODate("2016-03-03T12:15:49.996Z")
.Puede que no sea muy eficaz para conjuntos de resultados grandes, pero puede limitar la consulta. Alternativamente, puede usar
mongoexport
.fuente
tojson(db.getCollection(...).find(...)["_batch"])
para generar la totalidad del lote actual obtenido del servidor.["_batch"]
? ¿Puede dar un ejemplo de cómo usar esto? Probé esto con Robo 3T 1.2.1, pero solo dice "El script se ejecutó correctamente, pero no hay resultados para mostrar".tojson(db.getCollection(...).find(...).toArray())
.Una forma rápida y sucia: simplemente escriba su consulta como
db.getCollection('collection').find({}).toArray()
y haga clic derechoCopy JSON
. Pegue los datos en el editor de su elección.fuente
La funcionalidad de shell de Robomongo resolverá el problema. En mi caso, necesitaba un par de columnas en formato CSV.
fuente
Hay algunas GUI de MongoDB, algunas de ellas tienen soporte incorporado para la exportación de datos. Encontrará una lista completa de las GUI de MongoDB en http://mongodb-tools.com
Ha preguntado sobre la exportación de los resultados de su consulta y no sobre la exportación de colecciones completas. Dar 3T MongoChef MongoDB interfaz gráfica de usuario de un intento, esta herramienta tiene soporte para el caso de uso específico.
fuente
dice "exportar a archivo" como en una hoja de cálculo? como un .csv?
En mi opinión, esta es la forma MÁS FÁCIL de hacer esto en Robo 3T (anteriormente robomongo):
En la parte superior derecha de la GUI de Robo 3T hay un botón "Ver resultados en modo texto", haz clic en él y copia todo
pegue todo en este sitio web: https://json-csv.com/
haga clic en el botón de descarga y ahora lo tiene en una hoja de cálculo.
Espero que esto ayude a alguien, ya que desearía que Robo 3T tuviera capacidades de exportación
fuente
No ejecute este comando en el shell, ingrese este script en un símbolo del sistema con el nombre de su base de datos, el nombre de la colección y el nombre del archivo, todo reemplazando los marcadores de posición.
Esto funciona para mi.
fuente
No creo que el robomongo tenga esa característica. Así que es mejor que uses la función mongodb como mongoexport para una colección específica.
Pero si está buscando una solución de respaldo, es mejor usar
fuente
Ampliando la respuesta de Anish, quería algo que pudiera aplicar a cualquier consulta para generar automáticamente todos los campos en lugar de tener que definirlos dentro de la declaración de impresión. Probablemente se pueda simplificar, pero esto fue algo rápido y sucio que funciona muy bien:
fuente
Si desea utilizar mongoimport , querrá exportar de esta manera:
fuente
Usando un script de shell robomongo:
Usando el comando de exportación e importación de mongodb
Puede agregar el
--jsonArray
parámetro / bandera a sumongoexport
comando, esto exporta el resultado como una sola matriz json.Luego, simplemente especifique la
--jsonArray
bandera nuevamente al importar.O elimine los corchetes de matriz inicial y final [] en el archivo, luego su archivo modificado y exportado se importará con el
mongoimport
comando sin la--jsonArray
bandera.Más sobre Exportar aquí: https://docs.mongodb.org/manual/reference/program/mongoexport/#cmdoption--jsonArray
Importar aquí: https://docs.mongodb.org/manual/reference/program/mongoimport/#cmdoption--jsonArray
fuente
Tuve este mismo problema, y ejecutar un script en robomongo (Robo 3T 1.1.1) tampoco permite copiar valores y tampoco había una opción de exportación. La mejor manera de lograr esto es usar mongoexport, si mongodb está instalado en su local, puede usar mongoexport para conectarse a la base de datos en cualquier servidor y extraer datos
Para conectarse a los datos en el servidor remoto y al archivo de salida csv, ejecute el siguiente mongoexport en su línea de comando
fieldFile: ayuda a extraer las columnas deseadas, por ejemplo: el contenido de fields.txt puede ser simplemente:
para extraer solo valores de la columna 'userId'
Datos en servidor remoto, archivo de salida json:
esto extrae todos los campos en el archivo json
datos en localhost (mongodb debe ejecutarse en localhost)
Referencia: https://docs.mongodb.com/manual/reference/program/mongoexport/#use
fuente
Solución:
Donde:
base de datos ->
nombre de la colección del servidor simulado ->
nombre del archivo de salida api_defs -> childChoreRequest.json
fuente
Una extensión de la respuesta de Florian Winter para las personas que buscan generar una consulta lista para ejecutar.
drop
yinsertMany
consulta usandocursor
:Su salida será como:
fuente
fuente