MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Eksportuj kolekcję MongoDB do pliku JSON

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.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongoose Próbuję otworzyć niezamknięte połączenie

  2. Przegląd opcji tworzenia kopii zapasowych MongoDB

  3. wielokrotny operator aktualizacji mongo w jednym oświadczeniu?

  4. Wyjaśnienie upsert MongoDB

  5. 2 sposoby na uzyskanie rozmiaru dokumentu w MongoDB