Come importare il formato di file .bson su mongodb


163

Ho esportato il database sul server usando il mongodumpcomando e il dump è archiviato nel .bsonfile. Devo importarlo nel mio server locale usando il mongorestorecomando. Tuttavia non funziona. Qual è il mongorestorecomando corretto e quali sono gli altri tools to restore db?

Risposte:


342

È molto semplice importare un file .bson :

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

Solo per una singola raccolta. Prova questo:

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

Per ripristinare la cartella completa esportata da mongodump:

mongorestore -d db_name /path/

4
Utile anche per il file bson esportato tramite mongoexportse esporti solo singole raccolte. mongoimportmi stava dando errori di "carattere non valido". Grazie!
divillysausages

4
SintassiErrore: mancante; prima
dell'istruzione

3
Forse puoi aggiungere che questi comandi devono essere eseguiti dal prompt dei comandi e non dalla console di mongo. Ciò aiuterebbe i nuovi utenti
Sogni l'

2
Aggiungendo a questa risposta. Per coloro che desiderano ripristinare in remoto un file bson. Mongorestore -h [host] -u [user] -p [pass] -d [database] -c [collection] [bson file]
Jpepper,

1
Grazie ha funzionato per la mia cartella completa dopo aver estratto da tar.gz
Braham Dev Yadav,

64

mongorestoreè lo strumento da utilizzare per importare file bson scaricati da mongodump.

Dai documenti :

mongorestore prende l'output da mongodump e lo ripristina.

Esempio:

# 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

Devo mantenere la dump/dbName/collectionName.bsonstruttura delle cartelle? Ho usato mongodump, ma ora voglio importarlo usando mongorestoresu una scatola Linux remota.
Kevin Meredith,

@Kevin: non sono sicuro, a dire il vero, ma lo suppongo. Utilizzare un programma FTP per trasferire i file insieme alla struttura delle cartelle?
Cameron,

5
Sono stato in grado di importare con successo un mongo db usando un nome di cartella non "dump":mongorestore --collection people --db accounts myDump/accounts/people.bson
Kevin Meredith,

35
bsondump collection.bson > collection.json

e poi

mongoimport -d <dbname> -c <collection> < collection.json

7
Nota l'avvertimento dalla documentazione di importazione-esportazione di 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ì. Questo incasina i caratteri cinesi / giapponesi.
user2619824

10

Eseguire quanto segue dalla riga di comando e si dovrebbe essere nella directory bin Mongo.

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


9

Devi eseguire questo comando mongorestore tramite cmd e non su Mongo Shell ... Dai un'occhiata al comando seguente su ...

Esegui questo comando su cmd (non sulla shell Mongo)

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

Ecco il path\to\mongorestore.exepercorso della mongorestore.execartella bin interna di mongodb. dbname è il nome di databse. collection_nameè il nome di collection.bson. path\to\same\collection.bsonè il percorso fino a quella raccolta.

Ora dalla shell mongo è possibile verificare che il database sia stato creato o meno (se non esiste, il database con lo stesso nome verrà creato con la raccolta).



2

Se il tuo accesso da remoto puoi farlo

per bson:

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

per bson compresso in 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 nome_db / percorso /

assicurati di eseguire questa query nella cartella bin di mongoDb

C: \ Programmi \ MongoDB \ Server \ 4.2 \ bin -

quindi esegui questo comando sopra.


0

Ho usato questo:

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

1.copiare il percorso del file e il nome del file dalle proprietà (provare a mettere tutti i file bson in cartelle diverse), 2. riutilizzarlo più volte cambiando solo il nome del file.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.