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?

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/

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

¿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

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


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).



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"

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.


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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.