W MongoDB możesz eksportować dane za pomocą mongoexport narzędzie.
Możesz użyć mongoeksportu narzędzie do eksportowania danych z bazy danych MongoDB do pliku JSON lub CSV.
Narzędzie znajduje się w bin MongoDB katalog (np. /mongodb/bin ). Po uruchomieniu narzędzia podaj nazwę bazy danych, kolekcję i plik, do którego chcesz go wyeksportować.
Aby wyeksportować dane, najpierw otwórz nowe okno terminala/wiersza poleceń, a następnie wpisz odpowiednie polecenie.
Eksportuj kolekcję do pliku JSON
Tutaj używamy mongoexport wyeksportować artystów kolekcja do pliku JSON:
mongoexport --db music --collection artists --out /data/dump/music/artists.json
Wiadomość wynikowa:
2016-07-12T09:57:37.613+0700 connected to: localhost 2016-07-12T09:57:37.614+0700 exported 13 records
Wynikowy plik:
{"_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"}
Jeśli okaże się, że nie możesz uruchomić mongoexport , upewnij się, że opuściłeś mongo narzędzie lub otworzył nowe okno terminala/wiersza polecenia przed uruchomieniem mongoexport , ponieważ jest to osobne narzędzie.
Powyższe polecenie zakłada, że katalog bin MongoDB znajduje się w twojej PATH. Jeśli tak nie jest, musisz użyć pełnej ścieżki do
mongoeksportu
plik. Na przykład /mongodb/bin/mongoexport
lub gdziekolwiek jest zainstalowane Twoje wdrożenie MongoDB.
Jeśli nie podasz ścieżki do eksportowanego pliku, zostanie on utworzony w dowolnym miejscu po uruchomieniu polecenia. Podaj pełną ścieżkę lub przejdź do miejsca, w którym chcesz zapisać plik danych przed uruchomieniem polecenia.
Eksportuj kolekcję do pliku CSV
Aby wyeksportować do pliku CSV, dodaj --type=csv
do polecenia.
Musisz również określić pola w dokumentach MongoDB do wyeksportowania.
Tutaj używamy mongoexport wyeksportować artystów kolekcja do pliku CSV. Eksportujemy _id i nazwisko wykonawcy pola. Nazwę pliku nadaliśmy również jako .csv rozszerzenie.
mongoexport --db music --collection artists --type=csv --fields _id,artistname --out /data/dump/music/artists.csv
Wiadomość wynikowa:
2016-07-12T10:16:33.111+0700 connected to: localhost 2016-07-12T10:16:33.114+0700 exported 13 records
Wynikowy plik 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
Eksportuj wyniki zapytania
Możesz użyć --query
opcja, aby określić zapytanie do wyeksportowania. Zapytanie musi być ujęte w pojedyncze cudzysłowy.
Tutaj eksportujemy szczegóły dotyczące Milesa Davisa do pliku JSON:
mongoexport --db music --collection artists --query '{"artistname": "Miles Davis"}' --out /data/dump/music/miles_davis.json
Wiadomość wynikowa:
2016-07-12T10:32:19.794+0700 connected to: localhost 2016-07-12T10:32:19.795+0700 exported 1 record
Wynikowy plik 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"}]}
Inne opcje
mongoeksport Narzędzie udostępnia szereg opcji. Oto kilka potencjalnie przydatnych.
--limit
Opcja
Ogranicza liczbę dokumentów w eksporcie.
mongoexport --db music --collection artists --limit 3 --out /data/dump/music/3_artists.json
Wynikowy plik:
{"_id":{"$oid":"5780fbf948ef8c6b3ffb0149"},"artistname":"The Tea Party"} {"_id":{"$oid":"5781c9ac48ef8c6b3ffb014a"},"artistname":"Jorn Lande"} {"_id":1.0,"artistname":"AC/DC"}
--sort
Opcja
Określa sposób uporządkowania wyników.
Tutaj sortujemy plik według
_id
pole w porządku rosnącym (np. 1
). Aby zmniejszyć, użyj -1
.
mongoexport --db music --collection artists --limit 3 --sort '{_id: 1}' --out /data/dump/music/3_artists_sorted.json
Wynikowy plik:
{"_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
Opcja
Pozwala instruować mongoexport aby pominąć kilka dokumentów przed rozpoczęciem operacji eksportu.
mongoexport --db music --collection artists --limit 3 --sort '{_id: 1}' --skip 2 --out /data/dump/music/3_artists_sorted_skipped.json
Wynikowy plik:
{"_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
Opcja
Wyświetla dokumenty w bardziej czytelnym formacie JSON.
mongoexport --db music --collection artists --query '{"artistname": "Miles Davis"}' --pretty --out /data/dump/music/miles_davis_pretty.json
Wynikowy plik:
{ "_id": { "$oid": "578214f048ef8c6b3ffb0159" }, "artistname": "Miles Davis", "albums": [ { "album": "Kind of Blue", "year": 1959.0, "genre": "Jazz" }, { "album": "Bitches Brew", "year": 1970.0, "genre": "Jazz" } ] }