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.