Při používání MongoDB můžete použít mongoimport
importovat dokumenty do sbírky. mongoimport
je nástroj příkazového řádku, který importuje obsah ze souboru Extended JSON, CSV nebo TSV. Soubor importu mohl být vytvořen pomocí mongoexport
nebo nějaký jiný exportní nástroj.
Tento článek uvádí příklady importu souboru JSON do MongoDB.
Příklad
Předpokládejme, že máme následující soubor JSON s názvem pets.json
:
{ "_id" : 1, "name" : "Wag", "type" : "Dog" } { "_id" : 2, "name" : "Bark", "type" : "Dog" } { "_id" : 3, "name" : "Meow", "type" : "Cat" }
Následující příkaz importuje soubor JSON do MongoDB:
mongoimport --db=PetHotel --file=pets.json
V tomto případě jsem nespecifikoval kolekci, do které to mám importovat, takže to vytvořilo kolekci se stejným názvem souboru (pets
).
Zkontrolujte výsledky
Pojďme se podívat na sbírku.
db.pets.find()
Výsledek:
{ "_id" : 1, "name" : "Wag", "type" : "Dog" } { "_id" : 2, "name" : "Bark", "type" : "Dog" } { "_id" : 3, "name" : "Meow", "type" : "Cat" }
Vidíme, že dokumenty byly importovány podle očekávání.
Uveďte název kolekce
Můžete použít --collection
(nebo -c
) parametr určující kolekci, do které se má soubor importovat.
Zde je příklad použití --collection
parametr pro import stejného souboru do jiné kolekce:
mongoimport --db=PetHotel --collection=pets2 --file=pets.json
Pokud sbírka ještě neexistuje, bude vytvořena. Pokud již existuje, bude výsledek importu záviset na režimu, který používáte (více o tom níže).
Před importem zrušte kolekci
Můžete použít --drop
parametr k odstranění jakékoli existující kolekce se stejným názvem jako ta, kterou se pokoušíte vytvořit/importovat.
Představte si, že máme druhý soubor s názvem pets2.json
, s následujícím dokumentem:
{ "_id" : 4, "name" : "Bubbles" } { "_id" : 5, "name" : "Hop", "type": "Kangaroo" }
Co se stane, když tento dokument importuji do pets
sběr pomocí --drop
možnost:
mongoimport --db=PetHotel --collection=pets --drop --file=pets2.json
Výstup:
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.
Zpráva nám říká, že kolekce byla zrušena a jeden dokument byl importován.
Pojďme se podívat na kolekci:
db.pets.find()
Výsledek:
{ "_id" : 5, "name" : "Hop", "type" : "Kangaroo" } { "_id" : 4, "name" : "Bubbles" }
Jak se očekávalo, naše dva nové dokumenty jsou jediné ve sbírce.
Režimy importu
S mongoimport
můžete použít různé režimy importu . Tyto režimy určují, co se stane, pokud již v kolekci, do které se pokoušíte importovat, jsou odpovídající dokumenty.
Režimy jsou následující:
Režim | Popis |
---|---|
insert | Toto je výchozí režim. Tento režim vloží dokumenty z importovaného souboru. Pokud již odpovídající dokument v kolekci existuje, dojde k chybě. Odpovídající dokument je dokument, který má stejné jedinečné ID (například odpovídající _id pole) jako dokument v souboru importu. |
upsert | Nahradí existující dokumenty v databázi odpovídajícími dokumenty ze souboru importu. Všechny ostatní dokumenty jsou vloženy. |
merge | Sloučí existující dokumenty, které odpovídají dokumentu v importovaném souboru, s novým dokumentem. Všechny ostatní dokumenty jsou vloženy. |
delete | Odstraní existující dokumenty v databázi, které odpovídají dokumentu v importovaném souboru. Jakékoli neodpovídající dokumenty nemají žádný účinek. |
Viz Režimy importu mongoimport
pro příklady každého režimu.
Vyhledejte mongoimport
mongoimport
je součástí balíčku databázových nástrojů MongoDB. Databázové nástroje MongoDB jsou sada nástrojů příkazového řádku pro práci s MongoDB.
Pokud si nejste jisti, zda máte MongoDB Database Tools/mongoimport
nainstalovaný, zkuste spustit následující příkaz v terminálu nebo příkazovém řádku a zkontrolujte:
mongoimport --version
Pokud ji máte, měli byste vidět informace o verzi atd. Pokud ji nemáte, můžete ji nainstalovat do svého systému pomocí pokynů k instalaci na webu MongoDB.
Kde spustit příkazy?
Nezapomeňte, že musíte spustit mongoimport
příkazy z příkazového řádku vašeho systému (např. nový terminál nebo okno příkazového řádku).
Nespouštějte je z mongo
skořápka.