So importieren Sie das .bson-Dateiformat auf mongodb


162

Ich habe die Datenbank mit dem mongodumpBefehl auf den Server exportiert und der Speicherauszug wird in einer .bsonDatei gespeichert . Ich muss das mit dem mongorestoreBefehl auf meinen lokalen Server importieren . Es funktioniert jedoch nicht. Was ist der richtige mongorestoreBefehl und was sind die anderen tools to restore db?

Antworten:


342

Es ist sehr einfach, eine .bson- Datei zu importieren :

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

Nur für eine einzelne Sammlung. Versuchen Sie Folgendes:

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

Zum Wiederherstellen des vollständigen Ordners, der exportiert wurde von mongodump:

mongorestore -d db_name /path/

4
Auch nützlich für die bson-Datei, die über exportiert wird, mongoexportwenn Sie nur einzelne Sammlungen exportieren. mongoimportgab mir "ungültige Zeichen" Fehler. Vielen Dank!
— Zivilwürste

4
SyntaxError: fehlt; vor Anweisung @ (Shell): 1: 16
— 151291

3
Vielleicht können Sie hinzufügen, dass diese Befehle an der Eingabeaufforderung und nicht an der Mongo-Konsole ausgeführt werden sollen. Das würde neuen Benutzern helfen
— Träume

2
Zu dieser Antwort hinzufügen. Für diejenigen, die eine bson-Datei remote wiederherstellen möchten. Mongorestore -h [host] -u [user] -p [pass] -d [database] -c [collection] [bson file]
— Jpepper

1
Danke, es hat für meinen kompletten Ordner funktioniert, nachdem ich ihn von tar.gz
— Braham Dev Yadav

63

mongorestore ist das Tool zum Importieren von Bson-Dateien, die von ausgegeben wurden mongodump .

Aus den Dokumenten :

mongorestore nimmt die Ausgabe von mongodump und stellt sie wieder her.

Beispiel:

# 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

Muss ich die dump/dbName/collectionName.bsonOrdnerstruktur beibehalten? Ich habe verwendet mongodump, aber jetzt möchte ich es mit mongorestoreeiner Remote-Linux-Box importieren .
— Kevin Meredith

@ Kevin: Ich bin mir nicht sicher, um ehrlich zu sein, aber ich würde es annehmen. Verwenden Sie ein FTP-Programm, um die Dateien zusammen mit der Ordnerstruktur zu übertragen?
— Cameron

5
Ich konnte eine Mongo-Datenbank erfolgreich mit einem Nicht-Dump-Ordnernamen importieren:mongorestore --collection people --db accounts myDump/accounts/people.bson
— Kevin Meredith

35
bsondump collection.bson > collection.json

und dann

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

7
Beachten Sie die Warnung aus der Import-Export-Dokumentation von 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

10

Führen Sie Folgendes über die Befehlszeile aus, und Sie sollten sich im Verzeichnis Mongo bin befinden.

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


9

Sie müssen diesen Mongorestore-Befehl über cmd und nicht über Mongo Shell ausführen ... Schauen Sie sich den folgenden Befehl an ...

Führen Sie diesen Befehl auf cmd aus (nicht auf der Mongo-Shell).

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

Hier path\to\mongorestore.exeist der Pfad des mongorestore.exeBin-Ordners von Mongodb. Datenbankname ist der Name der Datenbank. collection_nameist der Name von collection.bson.path\to\same\collection.bsonist der Weg zu dieser Sammlung.

Jetzt können Sie in der Mongo-Shell überprüfen, ob eine Datenbank erstellt wurde oder nicht (falls diese nicht vorhanden ist, wird eine Datenbank mit demselben Namen mit der Sammlung erstellt).



2

Wenn Sie remote zugreifen, können Sie dies tun

für bson:

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

für bson im .gz (gzip) Format komprimiert:

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 Datenbankname / Pfad /

Stellen Sie sicher, dass Sie diese Abfrage im Ordner bin von mongoDb ausführen

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

Führen Sie dann diesen obigen Befehl aus.


0

Ich habe das benutzt:

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

1.Kopieren Sie den Dateipfad und den Dateinamen aus den Eigenschaften (versuchen Sie, alle bson-Dateien in einem anderen Ordner abzulegen). 2. Verwenden Sie diesen immer wieder, wenn Sie nur den Dateinamen ändern.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.