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 CSV do MongoDB.
Příklad
Předpokládejme, že máme následující soubor CSV s názvem pets.csv
:
_id,name,type 1,"Wag","Dog" 2,"Bark","Dog" 3,"Meow","Cat"
Následující příkaz importuje soubor CSV do MongoDB:
mongoimport --db=PetHotel --type=csv --headerline --file=pets.csv
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í.
Soubory CSV bez záhlaví sloupců
V předchozím příkladu jsme použili --headerline
parametr určující, že první řádek by měl být použit pro názvy polí.
Pokud váš soubor CSV neobsahuje řádek záhlaví, budete muset použít buď --fields
nebo --fieldFile
parametr k určení názvů polí.
Představte si tedy, že náš soubor CSV neměl řádek sloupce a místo toho vypadal takto:
1,"Wag","Dog" 2,"Bark","Dog" 3,"Meow","Cat"
K importu souboru bychom pak mohli použít následující příkaz:
mongoimport --db=PetHotel --type=csv --fields=_id,name,type --file=pets.csv
To má stejný výsledek jako předchozí příklad.
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 --type=csv --fields=_id,name,type --file=pets.csv
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 později).
V našem případě nově vytvořená kolekce vypadá takto:
db.pets2.find()
Výsledek:
{ "_id" : 2, "name" : "Bark", "type" : "Dog" } { "_id" : 3, "name" : "Meow", "type" : "Cat" } { "_id" : 1, "name" : "Wag", "type" : "Dog" }
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.csv
, s následujícím dokumentem:
_id,name,type,weight 4,"Bubbles","Fish",3
Co se stane, když tento dokument importuji do pets2
sběr pomocí --drop
možnost:
mongoimport --db=PetHotel --collection=pets2 --type=csv --headerline --drop --file=pets2.csv
Výstup:
2021-01-03T15:05:40.281+1000 connected to: mongodb://localhost/ 2021-01-03T15:05:40.284+1000 dropping: PetHotel.pets2 2021-01-03T15:05:40.336+1000 1 document(s) imported successfully. 0 document(s) failed to import.
To nám říká, že kolekce byla zrušena a jeden dokument byl importován.
Pojďme se podívat na kolekci:
db.pets2.find()
Výsledek:
{ "_id" : 4, "name" : "Bubbles", "type" : "Fish", "weight" : 3 }
Podle očekávání je náš nový dokument jediným 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 mongoimport
Příkazy?
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.