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.