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

MongoDB - Export dat

V MongoDB můžete exportovat data pomocí mongoexport utility.

Můžete použít mongoexport nástroj pro export dat z vaší databáze MongoDB do souboru JSON nebo CSV.

Nástroj se nachází v MongoDB bin adresář (např. /mongodb/bin ). Při spuštění nástroje zadejte název databáze, kolekce a souboru, do kterého chcete exportovat.

Chcete-li exportovat data, nejprve otevřete nové okno terminálu/příkazového řádku a poté zadejte příslušný příkaz.

Export kolekce do souboru JSON

Zde používáme mongoexport exportovat umělce kolekce do souboru JSON:

mongoexport --db music --collection artists --out /data/dump/music/artists.json

Výsledná zpráva:

2016-07-12T09:57:37.613+0700	connected to: localhost
2016-07-12T09:57:37.614+0700	exported 13 records

Výsledný soubor:

{"_id":{"$oid":"5780fbf948ef8c6b3ffb0149"},"artistname":"The Tea Party"}
{"_id":{"$oid":"5781c9ac48ef8c6b3ffb014a"},"artistname":"Jorn Lande"}
{"_id":1.0,"artistname":"AC/DC"}
{"_id":{"$oid":"5781d7f248ef8c6b3ffb014d"},"artistname":"The Kooks"}
{"_id":{"$oid":"5781d7f248ef8c6b3ffb014e"},"artistname":"Bastille"}
{"_id":{"$oid":"5781d7f248ef8c6b3ffb014f"},"artistname":"Gang of Four"}
{"_id":{"$oid":"5781f85d48ef8c6b3ffb0150"},"artistname":"Deep Purple","albums":[{"album":"Machine Head","year":1972.0,"genre":"Rock"},{"album":"Stormbringer","year":1974.0,"genre":"Rock"}]}
{"_id":{"$oid":"578214f048ef8c6b3ffb0159"},"artistname":"Miles Davis","albums":[{"album":"Kind of Blue","year":1959.0,"genre":"Jazz"},{"album":"Bitches Brew","year":1970.0,"genre":"Jazz"}]}
{"_id":{"$oid":"578217c248ef8c6b3ffb015a"},"artistname":"Robben Ford","albums":[{"album":"Bringing it Back Home","year":2013.0,"genre":"Blues"},{"album":"Talk to Your Daughter","year":1988.0,"genre":"Blues"}]}
{"_id":{"$oid":"578217c248ef8c6b3ffb015b"},"artistname":"Snoop Dogg","albums":[{"album":"Tha Doggfather","year":1996.0,"genre":"Rap"},{"album":"Reincarnated","year":2013.0,"genre":"Reggae"}]}
{"_id":2.0,"artistname":"Prince","address":{"street":"Audubon Road","city":"Chanhassen","state":"Minnesota","country":"United States"}}
{"_id":3.0,"artistname":"Moby","albums":[{"album":"Play","year":1999.0,"genre":"Electronica"},{"album":"Long Ambients 1: Calm. Sleep.","year":2016.0,"genre":"Ambient"}]}
{"_id":4.0,"artistname":"Rush"}

Pokud zjistíte, že nemůžete spustit mongoexport , ujistěte se, že jste buď opustili mongo nebo před spuštěním mongoexport otevřeli nové okno terminálu/příkazového řádku , protože se jedná o samostatný nástroj.

Výše uvedený příkaz předpokládá, že adresář MongoDB bin je ve vaší PATH. Pokud tomu tak není, budete muset použít úplnou cestu k mongoexport soubor. Například /mongodb/bin/mongoexport nebo kdekoli, kde je nainstalováno vaše nasazení MongoDB.

Pokud neposkytnete cestu k exportovanému souboru, bude při spuštění příkazu vytvořen kdekoli, kde se nacházíte. Před spuštěním příkazu buď zadejte úplnou cestu, nebo přejděte na místo, kam chcete datový soubor zapsat.

Export kolekce do souboru CSV

Chcete-li exportovat do souboru CSV, přidejte --type=csv k příkazu.

Musíte také zadat pole v dokumentech MongoDB, která chcete exportovat.

Zde používáme mongoexport exportovat umělce kolekce do souboru CSV. Exportujeme _id a jméno umělce pole. Také jsme dali názvu souboru .csv rozšíření.

mongoexport --db music --collection artists --type=csv --fields _id,artistname --out /data/dump/music/artists.csv

Výsledná zpráva:

2016-07-12T10:16:33.111+0700	connected to: localhost
2016-07-12T10:16:33.114+0700	exported 13 records

Výsledný soubor CSV:

_id,artistname
ObjectId(5780fbf948ef8c6b3ffb0149),The Tea Party
ObjectId(5781c9ac48ef8c6b3ffb014a),Jorn Lande
1,AC/DC
ObjectId(5781d7f248ef8c6b3ffb014d),The Kooks
ObjectId(5781d7f248ef8c6b3ffb014e),Bastille
ObjectId(5781d7f248ef8c6b3ffb014f),Gang of Four
ObjectId(5781f85d48ef8c6b3ffb0150),Deep Purple
ObjectId(578214f048ef8c6b3ffb0159),Miles Davis
ObjectId(578217c248ef8c6b3ffb015a),Robben Ford
ObjectId(578217c248ef8c6b3ffb015b),Snoop Dogg
2,Prince
3,Moby
4,Rush

Exportujte výsledky dotazu

Můžete použít --query možnost zadat dotaz k exportu. Dotaz musí být uzavřen v jednoduchých uvozovkách.

Zde exportujeme podrobnosti o Milesovi Davisovi do souboru JSON:

mongoexport --db music --collection artists --query '{"artistname": "Miles Davis"}' --out /data/dump/music/miles_davis.json

Výsledná zpráva:

2016-07-12T10:32:19.794+0700	connected to: localhost
2016-07-12T10:32:19.795+0700	exported 1 record

Výsledný soubor JSON:

{"_id":{"$oid":"578214f048ef8c6b3ffb0159"},"artistname":"Miles Davis","albums":[{"album":"Kind of Blue","year":1959.0,"genre":"Jazz"},{"album":"Bitches Brew","year":1970.0,"genre":"Jazz"}]}

Další možnosti

mongoexport nástroj poskytuje řadu možností. Zde jsou některé potenciálně užitečné.

--limit Možnost

Omezuje počet dokumentů v exportu.

mongoexport --db music --collection artists --limit 3 --out /data/dump/music/3_artists.json

Výsledný soubor:

{"_id":{"$oid":"5780fbf948ef8c6b3ffb0149"},"artistname":"The Tea Party"}
{"_id":{"$oid":"5781c9ac48ef8c6b3ffb014a"},"artistname":"Jorn Lande"}
{"_id":1.0,"artistname":"AC/DC"}

Položka --sort Možnost

Určuje, jak jsou výsledky seřazeny.

Zde seřadíme soubor podle _id pole ve vzestupném pořadí (tj. 1 ). Chcete-li jej nastavit sestupně, použijte -1 .

mongoexport --db music --collection artists --limit 3 --sort '{_id: 1}' --out /data/dump/music/3_artists_sorted.json

Výsledný soubor:

{"_id":1.0,"artistname":"AC/DC"}
{"_id":2.0,"artistname":"Prince","address":{"street":"Audubon Road","city":"Chanhassen","state":"Minnesota","country":"United States"}}
{"_id":3.0,"artistname":"Moby","albums":[{"album":"Play","year":1999.0,"genre":"Electronica"},{"album":"Long Ambients 1: Calm. Sleep.","year":2016.0,"genre":"Ambient"}]}

--skip Možnost

Umožňuje zadat pokyn mongoexport před zahájením operace exportu přeskočit řadu dokumentů.

mongoexport --db music --collection artists --limit 3 --sort '{_id: 1}' --skip 2 --out /data/dump/music/3_artists_sorted_skipped.json

Výsledný soubor:

{"_id":3.0,"artistname":"Moby","albums":[{"album":"Play","year":1999.0,"genre":"Electronica"},{"album":"Long Ambients 1: Calm. Sleep.","year":2016.0,"genre":"Ambient"}]}
{"_id":4.0,"artistname":"Rush"}
{"_id":{"$oid":"5780fbf948ef8c6b3ffb0149"},"artistname":"The Tea Party"}

--pretty Možnost

Vydává dokumenty v čitelnějším formátu JSON.

mongoexport --db music --collection artists --query '{"artistname": "Miles Davis"}' --pretty --out /data/dump/music/miles_davis_pretty.json

Výsledný soubor:

{
	"_id": {
		"$oid": "578214f048ef8c6b3ffb0159"
	},
	"artistname": "Miles Davis",
	"albums": [
		{
			"album": "Kind of Blue",
			"year": 1959.0,
			"genre": "Jazz"
		},
		{
			"album": "Bitches Brew",
			"year": 1970.0,
			"genre": "Jazz"
		}
	]
}

  1. hromadně odstranit hodnoty hash redis na základě názvu klíče hash

  2. MongoDB vrátí True, pokud dokument existuje

  3. pymongo:MongoClient nebo Připojení

  4. C# - MongoDB - Aktualizace prvku uvnitř vnořeného dokumentu