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

Importujte soubor JSON 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 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.


  1. Dotazování na velikost vnitřního pole v MongoDB

  2. Co se děje s Meteor and Fibers/bindEnvironment()?

  3. Vícenásobný klíč ukazující na jednu hodnotu v Redis (Cache) s javou

  4. MongoDB:V cestě bylo nalezeno příliš mnoho pozičních (tj. '$') prvků