Quiero exportar todas las colecciones en MongoDB con el comando:
mongoexport -d dbname -o Mongo.json
El resultado es: ¡
Ninguna colección especificada!
El manual dice que si no especifica una colección, todas las colecciones se exportarán.
Sin embargo, ¿por qué esto no funciona?
http://docs.mongodb.org/manual/reference/mongoexport/#cmdoption-mongoexport--collection
Mi versión de MongoDB es 2.0.6.
Respuestas:
Para gente perezosa, use
mongodump
, es más rápido:Y para "restaurar / importar" (desde directorio_backup / dump /):
De esta manera, no necesita tratar con todas las colecciones individualmente. Solo especifique la base de datos.
Tenga en cuenta que recomendaría no usar
mongodump
/mongorestore
para grandes almacenes de datos . Es muy lento y una vez que supera los 10 / 20GB de datos, puede tomar horas restaurarlos.fuente
Escribí un script bash para eso. Simplemente ejecútelo con 2 parámetros (nombre de la base de datos, directorio para almacenar archivos).
fuente
for file in *.json; do c=${file#*exp_yourdbname_}; c=${c%.json}; mongoimport --db yourdbname --collection "${c}" --file "${file}"; done
Siga los pasos a continuación para crear un mongodump desde el servidor e importarlo en otro servidor / máquina local que tenga un nombre de usuario y una contraseña
fuente
Exportar todas las colecciones usando mongodump usa el siguiente comando
mongodump -d database_name -o directory_to_store_dumps
Para restaurar use este comando
fuente
mongodump -d mongo -o path\to\Desktop\blog
y recibí unaSyntaxError: missing ; before statement
de la CMD. :(Por favor, háganos saber dónde ha instalado su Mongo DB? (ya sea en Ubuntu o en Windows)
Para ventanas:
mongodump --db nombre de la base de datos --out ruta para guardar,
por ejemplo: mongodump --db mydb --out c: \ TEMP \ op.json
Para Ubuntu:
mongodump -d nombre de la base de datos -o nombre de archivo para guardar,
por ejemplo: mongodump -d mydb -o output.json
fuente
Las respuestas anteriores lo explicaron bien, estoy agregando mi respuesta para ayudar en caso de que esté tratando con una base de datos remota protegida por contraseña
fuente
En caso de que desee conectar un servidor remoto de mongoDB como mongolab.com, debe pasar las credenciales de conexión, por ejemplo.
fuente
Si está de acuerdo con el formato bson, puede usar la utilidad mongodump con el mismo indicador -d. Volcará todas las colecciones al directorio de volcado (el valor predeterminado, se puede cambiar a través de la opción -o) en el formato bson. Luego puede importar estos archivos utilizando la utilidad mongorestore.
fuente
Puede usar
mongo --eval 'printjson(db.getCollectionNames())'
para obtener la lista de colecciones y luego hacer una exportación de mongo en todas ellas. Aquí hay un ejemplo en rubífuente
out.scan(/\".+?\"/).map { |s| s.gsub('"', '') }
Necesitaba la versión del script por lotes de Windows. Este hilo fue útil, así que pensé que también contribuiría con mi respuesta.
Tuve algunos problemas con el uso
set /p COLLECTIONS=<__collections.txt
, de ahí elfor /f
método complicado .fuente
Después de probar muchos ejemplos complicados, descubrí que un enfoque muy simple funcionó para mí.
Solo quería tomar un volcado de una base de datos local e importarlo en una instancia remota:
en la máquina local:
luego scp'd mi volcado a mi máquina servidor:
luego desde el directorio padre del basurero simplemente:
y eso importó la base de datos.
suponiendo que el servicio mongodb se esté ejecutando, por supuesto.
fuente
Si lo desea, puede exportar todas las colecciones a csv sin especificar
--fields
(exportará todos los campos).Desde http://drzon.net/export-mongodb-collections-to-csv-without-specifying-fields/ ejecute este script bash
fuente
Puedes hacerlo usando el comando mongodump
Los archivos exportados se crearán en la carpeta destination_path \ your_db_name (en este ejemplo C: \ Users \ HP \ Desktop \ test)
Referencias: o7planning
fuente
Si desea volcar todas las colecciones en todas las bases de datos (que es una interpretación expansiva de la intención del interrogador original), use
Todas las bases de datos y colecciones se crearán en un directorio llamado 'volcado' en la ubicación 'actual'
fuente
Me doy cuenta de que esta es una pregunta bastante antigua y que mongodump / mongorestore es claramente la forma correcta si desea un resultado 100% fiel, incluidos los índices.
Sin embargo, necesitaba una solución rápida y sucia que probablemente fuera compatible con versiones anteriores y nuevas de MongoDB, siempre que no haya nada especialmente extraño. Y para eso quería la respuesta a la pregunta original.
Hay otras soluciones aceptables arriba, pero esta tubería de Unix es relativamente corta y dulce:
Esto produce un
.json
archivo con el nombre apropiado para cada colección.Tenga en cuenta que el nombre de la base de datos ("mydatabase") aparece dos veces. Supongo que la base de datos es local y no necesita pasar credenciales, pero es fácil hacerlo con ambos
mongo
ymongoexport
.Tenga en cuenta que estoy usando
grep -v
para descartarsystem.indexes
, porque no quiero que una versión anterior de MongoDB intente interpretar una colección del sistema de una nueva. En cambio, estoy permitiendo que mi aplicación realice susensureIndex
llamadas habituales para recrear los índices.fuente
puede crear un archivo zip utilizando el siguiente comando. Se creará un archivo zip de la base de datos {dbname} proporcionada. Posteriormente, puede importar el siguiente archivo zip en su base de datos mongo.
fuente
Esto es lo que funcionó para mí al restaurar una base de datos exportada:
mongorestore -d 0 ./0 --drop
donde ./contenía los archivos bson exportados. Tenga en cuenta que
--drop
sobrescribirá los datos existentes.fuente
Si desea utilizar mongoexport y mongoimport para exportar / importar cada colección de la base de datos, creo que esta utilidad puede serle útil. He usado utilidades similares un par de veces;
fuente
Si desea hacer una copia de seguridad de todos los dbs en el servidor, sin preocuparse de que se llamen los dbs, use el siguiente script de shell:
Esto utiliza la utilidad mongodump, que respaldará todas las bases de datos si no se especifica ninguna.
Puede poner esto en su cronjob, y solo se ejecutará si se está ejecutando el proceso mongod. También creará el directorio de respaldo si no existe ninguno.
Cada copia de seguridad de la base de datos se escribe en un directorio individual, por lo que puede restaurar las bases de datos individuales del volcado global.
fuente
Primero, de Iniciar el Mongo DB - para eso ve a la ruta como ->
C: \ Archivos de programa \ MongoDB \ Server \ 3.2 \ bin y haga clic en el archivo mongod.exe para iniciar el servidor MongoDB.
Comando en Windows para exportar
C:> mongodump --host dirección_ip_remoto: 27017 --db -o C: / Users / Desktop / temp-folder
Comando en Windows para importar
C:> mongorestore --host = ip --port = 27017 -d C: / Users / Desktop / temp-folder / db-dir
fuente
fuente
Exportar:
mongo/bin> mongoexport -d webmitta -c domain -o domain-k.json
Importar:
mongoimport -d dbname -c newCollecionname --file domain-k.json
Dónde
fuente
Hay múltiples opciones dependiendo de lo que quieras hacer
1) Si desea exportar su base de datos a otra base de datos mongo, debe usarla
mongodump
. Esto crea una carpeta de archivos BSON que tienen metadatos que JSON no tendría.2) Si desea exportar su base de datos a JSON, puede usarla,
mongoexport
excepto que tiene que hacerlo una colección a la vez (esto es por diseño). Sin embargo, creo que es más fácil exportar toda la base de datosmongodump
y luego convertirla a JSON.fuente
Para el volcado, su base de datos sigue el CMD a continuación
fuente
Para exportar en formato JSON, haga esto siguiendo los comandos que puede ver.
fuente