sql >> Databáze >  >> NoSQL >> MongoDB

Importujte soubor CSV do MongoDB pomocí mongoimport

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.


  1. Strojové fondy a cloudové profily pro MongoDB

  2. Globálně použijte JsonConverter na třídě bez atributu

  3. StackExchange TimeoutException při pokusu o vložení 750 položek ve 2 sadách v redis

  4. MongoDB - Vytvořte databázi