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

Eksportuj kolekcję MongoDB do pliku CSV

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

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:

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

Spowoduje to wyeksportowanie kolekcji o nazwie pets z PetHotel bazy danych do pliku o nazwie pets.csv 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 .

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 csv aby wyeksportować go do pliku CSV.
--fields Określa pola, które chcemy wyeksportować. Mamy możliwość wyeksportowania wszystkich pól w kolekcji lub tylko niektórych. Musisz je tutaj wymienić, oddzielone przecinkami. Podczas eksportowania do CSV wymagane jest określenie nazw pól. Możesz to zrobić za pomocą --fields lub parametr --fieldFile parametr (więcej o tym później).
--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.csv aby zobaczyć, co jest w środku:

_id,name,type,weight
1,Wag,Dog,20
2,Bark,Dog,10
3,Meow,Cat,7
4,Scratch,Cat,8
5,Bruce,Bat,3
6,Fetch,Dog,17
7,Jake,Dog,30

OK, więc wszystkie dane znajdują się w wyeksportowanym pliku zgodnie z oczekiwaniami.

Usuń nagłówki kolumn

Zauważysz, że wyeksportowany plik w poprzednim przykładzie zawierał nagłówki kolumn.

Masz również możliwość wyeksportowania pliku bez nagłówki kolumn. Aby to zrobić, użyj --noHeaderLine parametr.

Przykład:

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

Teraz, gdy otwieram wyeksportowany plik, nie ma nagłówków kolumn:

1,Wag,Dog,20
2,Bark,Dog,10
3,Meow,Cat,7
4,Scratch,Cat,8
5,Bruce,Bat,3
6,Fetch,Dog,17
7,Jake,Dog,30

Użyj pliku dla nazw pól

Możesz zastąpić --field parametr z --fieldFile parametr, aby określić nazwę pliku zawierającego nazwy pól, które chcesz wyeksportować.

mongoexport --db=PetHotel --collection=pets --type=csv --fieldFile=data/pets_fields.txt --out=data/pets.csv

Plik zawierający pola musi mieć wymienione pola, po jednym w wierszu.

Oto, co pets_fields.txt plik wyglądał jak w tym przykładzie:

_id
name
type
weight

Spowodowało to, że zawartość wyeksportowanego pliku wyglądała tak:

_id,name,type,weight
1,Wag,Dog,20
2,Bark,Dog,10
3,Meow,Cat,7
4,Scratch,Cat,8
5,Bruce,Bat,3
6,Fetch,Dog,17
7,Jake,Dog,30

Zmiana kolejności kolumn

Możesz zmienić kolejność pól do eksportu. Nie muszą być w tej samej kolejności co podstawowy dokument.

Na przykład ten kod:

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

Wyniki w następującym pliku CSV:

_id,weight,type,name
1,20,Dog,Wag
2,10,Dog,Bark
3,7,Cat,Meow
4,8,Cat,Scratch
5,3,Bat,Bruce
6,17,Dog,Fetch
7,30,Dog,Jake

Oraz następujące:

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

Wyniki w tym:

type,name,weight,_id
Dog,Wag,20,1
Dog,Bark,10,2
Cat,Meow,7,3
Cat,Scratch,8,4
Bat,Bruce,3,5
Dog,Fetch,17,6
Dog,Jake,30,7

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 --type=csv --fields=_id,name,type,weight --out=data/pets.csv

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 bazy danych MongoDB/mongoexport zainstalowany, spróbuj uruchomić następujące polecenie w terminalu lub wierszu polecenia, 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. Symbol wieloznaczny prefiksu mongoDB:wyszukiwanie pełnotekstowe ($text) znajdź część z ciągiem wyszukiwania

  2. Importuj dane csv jako tablicę w mongodb za pomocą mongoimport

  3. MongoDB - Utwórz związek

  4. Jak wysłać zapytanie do mongodb za pomocą DBRef

  5. Aktualizacja starszej bazy danych mongo po niezamierzonej aktualizacji wersji mongo