Wenn Sie MongoDB verwenden, können Sie mongoimport
verwenden um Dokumente in eine Sammlung zu importieren. mongoimport
ist ein Befehlszeilendienstprogramm, das Inhalte aus einer erweiterten JSON-, CSV- oder TSV-Datei importiert. Die Importdatei könnte von mongoexport
erstellt worden sein oder ein anderes Exportdienstprogramm.
Dieser Artikel enthält Beispiele für den Import einer JSON-Datei in MongoDB.
Beispiel
Angenommen, wir haben die folgende JSON-Datei namens pets.json
:
{ "_id" : 1, "name" : "Wag", "type" : "Dog" } { "_id" : 2, "name" : "Bark", "type" : "Dog" } { "_id" : 3, "name" : "Meow", "type" : "Cat" }
Der folgende Befehl importiert die JSON-Datei in MongoDB:
mongoimport --db=PetHotel --file=pets.json
In diesem Fall habe ich keine Sammlung angegeben, in die es importiert werden soll, also wurde eine Sammlung mit demselben Namen wie die Datei erstellt (pets
).
Überprüfen Sie die Ergebnisse
Werfen wir einen Blick auf die Sammlung.
db.pets.find()
Ergebnis:
{ "_id" : 1, "name" : "Wag", "type" : "Dog" } { "_id" : 2, "name" : "Bark", "type" : "Dog" } { "_id" : 3, "name" : "Meow", "type" : "Cat" }
Wir können sehen, dass die Dokumente wie erwartet importiert wurden.
Geben Sie den Sammlungsnamen an
Sie können die --collection
verwenden (oder -c
) Parameter, um eine Sammlung anzugeben, in die die Datei importiert werden soll.
Hier ist ein Beispiel für die Verwendung von --collection
Parameter, um dieselbe Datei in eine andere Sammlung zu importieren:
mongoimport --db=PetHotel --collection=pets2 --file=pets.json
Wenn die Sammlung noch nicht existiert, wird sie erstellt. Wenn es bereits existiert, hängt das Ergebnis des Imports von dem Modus ab, den Sie verwenden (mehr dazu weiter unten).
Löschen Sie die Sammlung vor dem Importieren
Sie können den --drop
verwenden -Parameter, um jede vorhandene Sammlung mit demselben Namen wie diejenige, die Sie erstellen/importieren möchten, zu löschen.
Stellen Sie sich vor, wir haben eine zweite Datei namens pets2.json
, mit folgendem Dokument:
{ "_id" : 4, "name" : "Bubbles" } { "_id" : 5, "name" : "Hop", "type": "Kangaroo" }
Folgendes passiert, wenn ich dieses Dokument in pets
importiere Sammlung mit --drop
Möglichkeit:
mongoimport --db=PetHotel --collection=pets --drop --file=pets2.json
Ausgabe:
2021-01-03T15:42:25.626+1000 connected to: mongodb://localhost/ 2021-01-03T15:42:25.640+1000 dropping: PetHotel.pets 2021-01-03T15:42:25.734+1000 2 document(s) imported successfully. 0 document(s) failed to import.
Die Nachricht teilt uns mit, dass die Sammlung gelöscht und ein Dokument importiert wurde.
Werfen wir einen Blick auf die Sammlung:
db.pets.find()
Ergebnis:
{ "_id" : 5, "name" : "Hop", "type" : "Kangaroo" } { "_id" : 4, "name" : "Bubbles" }
Wie erwartet sind unsere beiden neuen Dokumente die einzigen in der Sammlung.
Importmodi
Es gibt verschiedene Importmodi, die Sie mit mongoimport
verwenden können . Diese Modi bestimmen, was passiert, wenn es bereits übereinstimmende Dokumente in der Sammlung gibt, in die Sie zu importieren versuchen.
Die Modi sind wie folgt:
Modus | Beschreibung |
---|---|
insert | Dies ist der Standardmodus. Dieser Modus fügt die Dokumente aus der Importdatei ein. Wenn bereits ein übereinstimmendes Dokument in der Sammlung vorhanden ist, tritt ein Fehler auf. Ein übereinstimmendes Dokument ist eines, das dieselbe eindeutige ID hat (z. B. eine übereinstimmende _id Feld) als Dokument in der Importdatei. |
upsert | Ersetzt vorhandene Dokumente in der Datenbank durch passende Dokumente aus der Importdatei. Alle anderen Dokumente werden eingefügt. |
merge | Führt vorhandene Dokumente, die mit einem Dokument in der Importdatei übereinstimmen, mit dem neuen Dokument zusammen. Alle anderen Dokumente werden eingefügt. |
delete | Löscht vorhandene Dokumente in der Datenbank, die mit einem Dokument in der Importdatei übereinstimmen. Alle nicht übereinstimmenden Dokumente haben keine Auswirkung. |
Siehe Die Importmodi von mongoimport
Beispiele für jeden Modus.
Suchen Sie nach mongoimport
mongoimport
ist Teil des MongoDB Database Tools-Pakets. Die MongoDB-Datenbanktools sind eine Reihe von Befehlszeilendienstprogrammen für die Arbeit mit MongoDB.
Wenn Sie sich nicht sicher sind, ob Sie die MongoDB Database Tools/mongoimport
installiert haben, versuchen Sie, den folgenden Befehl in Ihrem Terminal oder in der Eingabeaufforderung auszuführen, um dies zu überprüfen:
mongoimport --version
Wenn Sie es haben, sollten Sie Versionsinformationen usw. sehen. Wenn Sie es nicht haben, können Sie die Installationsanweisungen auf der MongoDB-Website verwenden, um es auf Ihrem System zu installieren.
Wo sollen die Befehle ausgeführt werden?
Vergessen Sie nicht, dass Sie mongoimport
ausführen müssen Befehle über die Befehlszeile Ihres Systems (z. B. ein neues Terminal- oder Eingabeaufforderungsfenster).
Führen Sie sie nicht vom mongo
aus Hülse.