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

Importieren Sie Dokumente aus einem Array von JSON-Dokumenten in MongoDB

Bei Verwendung von mongoimport , können Sie --jsonArray verwenden Parameter zum Importieren eines Arrays von JSON-Dokumenten.

Beispiel

Angenommen, wir haben das folgende JSON-Dokument namens pets_array.json :

[
    {"_id":1.0,"name":"Wag","type":"Dog"},
    {"_id":2.0,"name":"Bark","type":"Dog"},
    {"_id":3.0,"name":"Meow","type":"Cat"}
]

Wenn wir versuchen, das ohne in MongoDB zu importieren mit --jsonArray -Parameter erhalten wir die folgende Fehlermeldung:

2021-01-03T13:52:58.360+1000	no collection specified
2021-01-03T13:52:58.360+1000	using filename 'pets_array' as collection
2021-01-03T13:52:58.366+1000	connected to: mongodb://localhost/
2021-01-03T13:52:58.371+1000	Failed: cannot decode array into a D
2021-01-03T13:52:58.371+1000	0 document(s) imported successfully. 0 document(s) failed to import.

Grundsätzlich kann es das Array nicht in ein Dokument dekodieren.

Um dies zu beheben, können wir einfach das --jsonArray hinzufügen Parameter:

mongoimport --db=PetHotel --jsonArray --file=pets_array.json

Ausgabe:

2021-01-03T13:58:13.407+1000	no collection specified
2021-01-03T13:58:13.408+1000	using filename 'pets_array' as collection
2021-01-03T13:58:13.421+1000	connected to: mongodb://localhost/
2021-01-03T13:58:13.450+1000	3 document(s) imported successfully. 0 document(s) failed to import.

Dies sagt uns, dass alle drei Dokumente erfolgreich importiert wurden.

Wir können jetzt einen Blick auf die Sammlung werfen, um Folgendes zu überprüfen:

db.pets_array.find()

Ergebnis:

{ "_id" : 1, "name" : "Wag", "type" : "Dog" }
{ "_id" : 3, "name" : "Meow", "type" : "Cat" }
{ "_id" : 2, "name" : "Bark", "type" : "Dog" }

Wie erwartet befinden sich alle drei Dokumente in der neu erstellten Sammlung.

Die Sammlung wird neu erstellt, weil wir keine Sammlung angegeben haben, in die die Dokumente importiert werden sollen. Wenn ja, wären sie in die angegebene Sammlung importiert worden.

Kein mongoimport vorhanden ?

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 Ihrer 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 soll mongoimport ausgeführt werden Befehle?

Sie müssen mongoimport ausführen Befehle über die Befehlszeile Ihres Systems (z. B. ein neues Terminal- oder Eingabeaufforderungsfenster).

Führen Sie sie nicht vom mongo aus Hülse.