MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Importieren Sie eine JSON-Datei mit mongoimport in MongoDB

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.