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

Exportujte kolekci MongoDB do souboru JSON

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

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 do souboru JSON:

mongoexport --db=PetHotel --collection=pets --out=data/pets.json

Tím se exportuje kolekce nazvaná pets z PetHotel databázi do souboru s názvem pets.json 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 .

Výše uvedený příklad lze také napsat takto:

mongoexport --db=PetHotel --collection=pets --type=json --fields=_id,name,type,weight --out=data/pets.json

V tomto případě jsme přidali --type parametr a --fields parametr určující, která pole se mají zahrnout do souboru JSON.

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 json pro export do souboru JSON. json je výchozí hodnota, takže pokud tento parametr neuvedeme, soubor se vypíše jako soubor JSON.
--fields Určuje pole, která chceme exportovat. Máme možnost exportovat všechna pole v kolekci, nebo jen některá. Více názvů polí oddělte čárkou. Při exportu do JSON je zadání názvů polí volitelné (na rozdíl od CSV).
--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.json abyste viděli, co je uvnitř:

{"_id":1.0,"name":"Wag","type":"Dog","weight":20.0}
{"_id":2.0,"name":"Bark","type":"Dog","weight":10.0}
{"_id":3.0,"name":"Meow","type":"Cat","weight":7.0}
{"_id":4.0,"name":"Scratch","type":"Cat","weight":8.0}
{"_id":5.0,"name":"Bruce","type":"Bat","weight":3.0}
{"_id":6.0,"name":"Fetch","type":"Dog","weight":17.0}
{"_id":7.0,"name":"Jake","type":"Dog","weight":30.0}

Všechna data jsou v exportovaném souboru podle očekávání.

Méně polí

Můžete použít --fields parametr určující, která pole chcete exportovat.

Když to uděláte u souborů JSON, _id pole se vždy exportuje (i když je nezahrnete do seznamu polí k exportu).

Příklad:

mongoexport --db=PetHotel --collection=pets --fields=name,type --out=data/pets.json

V tomto případě specifikuji dvě pole k exportu.

Když otevřu exportovaný soubor, vidím, že jsou exportována obě tato pole, plus _id pole:

{"_id":1.0,"name":"Wag","type":"Dog"}
{"_id":2.0,"name":"Bark","type":"Dog"}
{"_id":3.0,"name":"Meow","type":"Cat"}
{"_id":4.0,"name":"Scratch","type":"Cat"}
{"_id":5.0,"name":"Bruce","type":"Bat"}
{"_id":6.0,"name":"Fetch","type":"Dog"}
{"_id":7.0,"name":"Jake","type":"Dog"}

Ří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 --out=data/pets.json

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.


  1. MongoDB Zobrazit položky dětí ve vztahu One to Many

  2. Jak vyhledám objekt podle jeho ObjectId v mongo konzoli?

  3. MongoDB a připojí se

  4. Nainstalujte MongoDB na Mac