Cómo importar el formato de archivo .bson en mongodb

162

Exporté la base de datos en el servidor usando el mongodumpcomando y dump se almacena en el .bsonarchivo. Necesito importar eso en mi servidor local usando el mongorestorecomando. Sin embargo no está funcionando. ¿Cuál es el mongorestorecomando correcto y cuáles son los otros tools to restore db?

binalay
fuente

Respuestas:

342

Es muy sencillo importar un archivo .bson :

mongorestore -d db_name -c collection_name /path/file.bson

Solo en caso de una sola colección. Intente esto:

mongorestore --drop -d db_name -c collection_name /path/file.bson

Para restaurar la carpeta completa exportada por mongodump:

mongorestore -d db_name /path/
ALEMÁN
fuente
44
También es útil para el archivo bson exportado a través de mongoexportsi solo está exportando colecciones individuales. mongoimportme estaba dando errores de "carácter no válido". ¡Gracias!
divillysausages
44
SyntaxError: falta; antes de la declaración @ (shell): 1: 16
151291
3
Quizás pueda agregar que estos comandos deben ejecutarse desde el símbolo del sistema y no desde la consola mongo. Eso ayudaría a los nuevos usuarios
Dreams
2
Agregando a esta respuesta. Para aquellos que desean restaurar remotamente un archivo bson. Mongorestore -h [host] -u [user] -p [pass] -d [database] -c [collection] [bson file]
Jpepper
1
Gracias funcionó para mi carpeta completa después de extrack de tar.gz
Braham Dev Yadav
63

mongorestorees la herramienta que se utiliza para importar archivos bson que fueron volcados mongodump.

De los documentos :

mongorestore toma la salida de mongodump y la restaura.

Ejemplo:

# On the server run dump, it will create 2 files per collection
# in ./dump directory:
# ./dump/my-collection.bson
# ./dump/my-collection.metadata.json
mongodump -h 127.0.0.1 -d my-db -c my-collection

# Locally, copy this structure and run restore.
# All collections from ./dump directory are picked up.
scp user@server:~/dump/**/* ./
mongorestore -h 127.0.0.1 -d my-db
Cameron
fuente
¿Necesito mantener la dump/dbName/collectionName.bsonestructura de carpetas? Solía mongodump, pero ahora quiero importarlo usando mongorestoreuna caja remota de Linux.
Kevin Meredith
@ Kevin: No estoy seguro, para ser honesto, pero supongo que sí. ¿Utiliza un programa FTP para transferir los archivos junto con la estructura de carpetas?
Cameron
55
Pude importar con éxito un db mongo usando un nombre de carpeta que no es "volcado":mongorestore --collection people --db accounts myDump/accounts/people.bson
Kevin Meredith
35
bsondump collection.bson > collection.json

y entonces

mongoimport -d <dbname> -c <collection> < collection.json
Anton Shutik
fuente
77
Tenga en cuenta la advertencia de la documentación de importación-exportación de MongoDB :mongoimport and mongoexport do not reliably preserve all rich BSON data types because JSON can only represent a subset of the types supported by BSON. As a result, data exported or imported with these tools may lose some measure of fidelity.
LucasB
Sí. Esto arruina los caracteres chinos / japoneses.
user2619824
10

Ejecute lo siguiente desde la línea de comando y debería estar en el directorio bin Mongo.

mongorestore -d db_name -c collection_name path/file.bson

puneet goyal
fuente
9

Debe ejecutar este comando mongorestore a través de cmd y no en Mongo Shell ... Eche un vistazo al siguiente comando en ...

Ejecute este comando en cmd (no en el shell Mongo)

>path\to\mongorestore.exe -d dbname -c collection_name path\to\same\collection.bson

Aquí path\to\mongorestore.exeestá la ruta de acceso mongorestore.exedentro de la carpeta bin de mongodb. dbname es el nombre de databse. collection_namees el nombre de collection.bson. path\to\same\collection.bsones el camino hasta esa colección.

Ahora desde mongo shell puede verificar que la base de datos se crea o no (si no existe, la base de datos con el mismo nombre se creará con la colección).

Viendo hacia adelante
fuente
4

Solo como referencia si alguien todavía está luchando con mongorestore.

Debe ejecutar monogorestore en el terminal / símbolo del sistema y no en la consola mongo.

$ mongorestore -d db_name /path_to_mongo_dump/

para más detalles puedes visitar documentaciones oficiales

https://docs.mongodb.com/manual/reference/program/mongorestore/

Lalit Sharma
fuente
2

Si tu acceso de forma remota puedes hacerlo

para bson:

mongorestore --host m2.mongodb.net --port 27016 --ssl --username $user --password $password --authenticationDatabase $authdb -d test -c people "/home/${USER}/people.bson"

para bson comprimido en formato .gz (gzip):

mongorestore --host m2.mongodb.net --port 27016 --ssl --username $user --password $password --authenticationDatabase $authdb -d test -c people --gzip --dir "/home/${USER}/people.bson.gz"
Consuegro
fuente
1

mongorestore -d nombre_bd / ruta /

asegúrese de ejecutar esta consulta en la carpeta bin de mongoDb

C: \ Archivos de programa \ MongoDB \ Server \ 4.2 \ bin -

luego ejecute este comando anterior.

Jitendra Chandwani
fuente
0

He usado esto:

mongorestore -d databasename -c file.bson fullpath/file.bson

1. Copie la ruta del archivo y el nombre del archivo desde las propiedades (intente colocar todos los archivos bson en una carpeta diferente). 2.Utilice esto una y otra vez solo cambiando el nombre del archivo.

Rochan
fuente