Narzędzia baz danych MongoDB zawierają narzędzie o nazwie mongoexport który umożliwia eksportowanie danych MongoDB do pliku CSV lub JSON.
Ten artykuł pokazuje, jak używać mongoexport aby wyeksportować kolekcję MongoDB do pliku JSON.
Składnia
Składnia mongoexport idzie tak:
mongoexport --collection=<coll> <options> <connection-string>
Musisz uruchomić mongoexport polecenia z wiersza poleceń systemu (np. nowe okno terminala lub wiersza polecenia).
Nie uruchamiaj mongoexport polecenia z mongo powłoka.
Eksportuj kolekcję
Poniższy przykładowy kod eksportuje kolekcję z MongoDB do pliku JSON:
mongoexport --db=PetHotel --collection=pets --out=data/pets.json
Spowoduje to wyeksportowanie kolekcji o nazwie pets z PetHotel bazy danych do pliku o nazwie pets.json w data/ teczka.
Jeśli folder nie istnieje, jest tworzony. To samo z plikiem. Nawiasem mówiąc, zakłada się, że nie ma problemów z uprawnieniami do zapisu pliku w określonej lokalizacji.
W tym przykładzie nie określiłem żadnego hosta, portu, uwierzytelniania itp., więc eksportuje kolekcję z instancji MongoDB działającej na domyślnym porcie hosta lokalnego o numerze 27017 .
Powyższy przykład można również zapisać tak:
mongoexport --db=PetHotel --collection=pets --type=json --fields=_id,name,type,weight --out=data/pets.json
W tym przypadku dodaliśmy --type parametr i --fields parametr, aby określić, które pola należy uwzględnić w pliku JSON.
Poniżej znajduje się wyjaśnienie parametrów, które tutaj podaliśmy.
| Parametr | Opis |
|---|---|
--db lub -d | Określa bazę danych zawierającą kolekcję, którą chcemy wyeksportować. W tym przypadku baza danych nazywa się PetHotel . Ten parametr można alternatywnie przekazać za pomocą -d (zamiast --db ). |
--collection lub -c | Określa kolekcję, którą chcemy wyeksportować. W tym przypadku kolekcja nazywa się pets . Ten parametr można alternatywnie przekazać jako -c (zamiast --collection ). |
--type | Określa typ eksportowanego pliku. W tym przypadku określamy json aby wyeksportować go do pliku JSON. json jest wartością domyślną, więc jeśli nie określimy tego parametru, plik zostanie wyprowadzony jako plik JSON. |
--fields | Określa pola, które chcemy wyeksportować. Mamy możliwość wyeksportowania wszystkich pól w kolekcji lub tylko niektórych. Poszczególne nazwy pól oddziel przecinkami. Podczas eksportowania do formatu JSON określenie nazw pól jest opcjonalne (w przeciwieństwie do CSV). |
--out | Określa nazwę eksportowanego pliku i jego lokalizację. Jeśli nie określisz nazwy pliku, mongoexport zapisuje dane na standardowe wyjście (stdout ). |
Sprawdź wyeksportowany plik
Sprawdźmy, czy operacja eksportu przebiegła zgodnie z oczekiwaniami.
Najpierw sprawdźmy oryginalną kolekcję.
use PetHotel
db.pets.find() Wynik:
{ "_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 } Widzimy więc, że jest 7 zwierząt domowych, wszystkie z tymi samymi polami, które określiliśmy w naszej operacji eksportu.
Teraz otwórzmy wyeksportowany plik pets.json aby zobaczyć, co jest w środku:
{"_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} Wszystkie dane znajdują się w wyeksportowanym pliku zgodnie z oczekiwaniami.
Mniej pól
Możesz użyć --fields parametr, aby określić, które pola chcesz wyeksportować.
Gdy robisz to na plikach JSON, _id pole jest zawsze eksportowane (nawet jeśli nie uwzględnisz go na liście pól do wyeksportowania).
Przykład:
mongoexport --db=PetHotel --collection=pets --fields=name,type --out=data/pets.json W tym przypadku określam dwa pola do wyeksportowania.
Kiedy otwieram wyeksportowany plik, widzę, że oba te pola zostały wyeksportowane, 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"} Kontrola dostępu/uwierzytelnianie
Jeśli nie używasz localhost, możesz użyć --host parametr określający hosta oraz --port aby określić port. Możesz także użyć --username parametr określający nazwę użytkownika i --password do dla hasła. Jeśli pominiesz parametr hasła, zostaniesz o to poproszony. Istnieje również --authenticationDatabase parametr określający bazę danych uwierzytelniania, w której utworzono użytkownika.
Przykład:
mongoexport --host=myhost.example.com --port=37017 --username=homer --authenticationDatabase=admin --db=PetHotel --collection=pets --out=data/pets.json Sprawdź mongoexport
mongoexport jest częścią pakietu MongoDB Database Tools. Narzędzia baz danych MongoDB to zestaw narzędzi wiersza poleceń do pracy z MongoDB.
Jeśli nie masz pewności, czy masz narzędzia baz danych MongoDB/mongoexport zainstalowany, spróbuj uruchomić następujące polecenie w terminalu lub wierszu poleceń, aby sprawdzić:
mongoexport --version Jeśli go masz, powinieneś zobaczyć informacje o wersji itp. Jeśli go nie masz, możesz skorzystać z instrukcji instalacji na stronie MongoDB, aby zainstalować ją w swoim systemie.
Gdzie uruchamiać polecenia?
Nie zapomnij, musisz uruchomić mongoexport polecenia z wiersza poleceń systemu (np. nowe okno terminala lub wiersza polecenia).
Nie uruchamiaj ich z mongo powłoka.