Databázové nástroje MongoDB zahrnují nástroj nazvaný mongoexport
který vám umožňuje exportovat data MongoDB do souboru CSV nebo JSON.
Tento článek ukazuje, jak používat mongoexport
exportovat kolekci MongoDB do souboru CSV.
Syntaxe
Syntaxe pro mongoexport
vypadá takto:
mongoexport --collection=<coll> <options> <connection-string>
Musíte spustit mongoexport
příkazy z příkazového řádku vašeho systému (např. nový terminál nebo okno příkazového řádku).
Nespouštějte mongoexport
příkazy z mongo
skořápka.
Export sbírky
Následující ukázkový kód exportuje kolekci z MongoDB:
mongoexport --db=PetHotel --collection=pets --type=csv --fields=_id,name,type,weight --out=data/pets.csv
Tím se exportuje kolekce nazvaná pets
z PetHotel
databázi do souboru s názvem pets.csv
v data/
složka.
Pokud složka neexistuje, je vytvořena. To samé se souborem. To mimochodem předpokládá, že při zápisu souboru do zadaného umístění neexistují žádné problémy s oprávněními.
V tomto příkladu jsem nespecifikoval žádného hostitele, port, ověřování atd., takže exportuje kolekci z instance MongoDB běžící na výchozím čísle portu localhost 27017
.
Níže je vysvětlení parametrů, které jsme zde uvedli.
Parametr | Popis |
---|---|
--db nebo -d | Určuje databázi obsahující kolekci, kterou chceme exportovat. V tomto případě se databáze nazývá PetHotel . Tento parametr lze alternativně předat pomocí -d (místo --db ). |
--collection nebo -c | Určuje kolekci, kterou chceme exportovat. V tomto případě se kolekce nazývá pets . Tento parametr lze alternativně předat jako -c (místo --collection ). |
--type | Určuje typ exportovaného souboru. V tomto případě zadáme csv exportovat do souboru CSV. |
--fields | Určuje pole, která chceme exportovat. Máme možnost exportovat všechna pole v kolekci, nebo jen některá. Zde musíte všechny uvést oddělené čárkou. Při exportu do CSV je požadavkem zadání názvů polí. Můžete tak učinit pomocí --fields nebo --fieldFile parametr (více o tom později). |
--out | Udává název exportovaného souboru a místo, kde bude umístěn. Pokud nezadáte název souboru, mongoexport zapisuje data na standardní výstup (stdout ). |
Zkontrolujte exportovaný soubor
Ověřte, že operace exportu fungovala podle očekávání.
Nejprve se podívejme na původní sbírku.
use PetHotel
db.pets.find()
Výsledek:
{ "_id" : 1, "name" : "Wag", "type" : "Dog", "weight" : 20 } { "_id" : 2, "name" : "Bark", "type" : "Dog", "weight" : 10 } { "_id" : 3, "name" : "Meow", "type" : "Cat", "weight" : 7 } { "_id" : 4, "name" : "Scratch", "type" : "Cat", "weight" : 8 } { "_id" : 5, "name" : "Bruce", "type" : "Bat", "weight" : 3 } { "_id" : 6, "name" : "Fetch", "type" : "Dog", "weight" : 17 } { "_id" : 7, "name" : "Jake", "type" : "Dog", "weight" : 30 }
Můžeme tedy vidět, že existuje 7 domácích mazlíčků, všechna se stejnými poli, která jsme specifikovali v naší exportní operaci.
Nyní otevřeme exportovaný soubor pets.csv
abyste viděli, co je uvnitř:
_id,name,type,weight 1,Wag,Dog,20 2,Bark,Dog,10 3,Meow,Cat,7 4,Scratch,Cat,8 5,Bruce,Bat,3 6,Fetch,Dog,17 7,Jake,Dog,30
OK, takže všechna data jsou v exportovaném souboru podle očekávání.
Odstranit záhlaví sloupců
Všimnete si, že exportovaný soubor v předchozím příkladu obsahoval záhlaví sloupců.
Máte také možnost exportovat soubor bez záhlaví sloupců. Chcete-li to provést, použijte --noHeaderLine
parametr.
Příklad:
mongoexport --db=PetHotel --collection=pets --type=csv --fields=_id,name,type,weight --noHeaderLine --out=data/pets.csv
Nyní, když otevřu exportovaný soubor, nejsou zde žádná záhlaví sloupců:
1,Wag,Dog,20 2,Bark,Dog,10 3,Meow,Cat,7 4,Scratch,Cat,8 5,Bruce,Bat,3 6,Fetch,Dog,17 7,Jake,Dog,30
Pro názvy polí použijte soubor
--field
můžete nahradit parametr s --fieldFile
parametr k určení názvu souboru, který obsahuje názvy polí, která chcete exportovat.
mongoexport --db=PetHotel --collection=pets --type=csv --fieldFile=data/pets_fields.txt --out=data/pets.csv
Soubor obsahující pole musí mít uvedená pole, jedno na řádek.
Zde je soubor pets_fields.txt
soubor vypadal v tomto příkladu:
_id name type weight
To vedlo k tomu, že obsah exportovaného souboru vypadal takto:
_id,name,type,weight 1,Wag,Dog,20 2,Bark,Dog,10 3,Meow,Cat,7 4,Scratch,Cat,8 5,Bruce,Bat,3 6,Fetch,Dog,17 7,Jake,Dog,30
Změna pořadí sloupců
Můžete změnit řazení polí pro export. Nemusí být ve stejném pořadí jako podkladový dokument.
Například tento kód:
mongoexport --db=PetHotel --collection=pets --type=csv --fields=_id,weight,type,name --out=data/pets.csv
Výsledky v následujícím souboru CSV:
_id,weight,type,name 1,20,Dog,Wag 2,10,Dog,Bark 3,7,Cat,Meow 4,8,Cat,Scratch 5,3,Bat,Bruce 6,17,Dog,Fetch 7,30,Dog,Jake
A následující:
mongoexport --db=PetHotel --collection=pets --type=csv --fields=type,name,weight,_id --out=data/pets.csv
Výsledky v tomto:
type,name,weight,_id Dog,Wag,20,1 Dog,Bark,10,2 Cat,Meow,7,3 Cat,Scratch,8,4 Bat,Bruce,3,5 Dog,Fetch,17,6 Dog,Jake,30,7
Řízení přístupu/ověření
Pokud nepoužíváte localhost, můžete použít --host
parametr k určení hostitele a --port
specifikovat port. Můžete také použít --username
parametr k zadání uživatelského jména a --password
pro heslo. Pokud parametr heslo vynecháte, budete k jeho zadání vyzváni. K dispozici je také --authenticationDatabase
parametr pro specifikaci autentizační databáze, kde byl uživatel vytvořen.
Příklad:
mongoexport --host=myhost.example.com --port=37017 --username=homer --authenticationDatabase=admin --db=PetHotel --collection=pets --type=csv --fields=_id,name,type,weight --out=data/pets.csv
Vyhledejte mongoexport
mongoexport
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/mongoexport
nainstalovaný, zkuste spustit následující příkaz v terminálu nebo příkazovém řádku a zkontrolujte:
mongoexport --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 mongoexport
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.