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

Importuj plik CSV do MongoDB za pomocą mongoimport

Korzystając z MongoDB, możesz użyć mongoimport importować dokumenty do kolekcji. mongoimport to narzędzie wiersza poleceń, które importuje zawartość z pliku Extended JSON, CSV lub TSV. Plik importu mógł zostać utworzony przez mongoexport lub inne narzędzie do eksportu.

W tym artykule przedstawiono przykłady importowania pliku CSV do MongoDB.

Przykład

Załóżmy, że mamy następujący plik CSV o nazwie pets.csv :

_id,name,type
1,"Wag","Dog"
2,"Bark","Dog"
3,"Meow","Cat"

Następujące polecenie importuje plik CSV do MongoDB:

mongoimport --db=PetHotel --type=csv --headerline --file=pets.csv

W tym przypadku nie określiłem kolekcji, do której ma zostać zaimportowany, więc utworzyłem kolekcję o tej samej nazwie pliku (pets ).

Sprawdź wyniki

Przyjrzyjmy się kolekcji.

db.pets.find()

Wynik:

{ "_id" : 1, "name" : "Wag", "type" : "Dog" }
{ "_id" : 2, "name" : "Bark", "type" : "Dog" }
{ "_id" : 3, "name" : "Meow", "type" : "Cat" }

Widzimy, że dokumenty zostały zaimportowane zgodnie z oczekiwaniami.

Pliki CSV bez nagłówków kolumn

W poprzednim przykładzie użyliśmy --headerline parametr określający, że pierwszy wiersz powinien być używany dla nazw pól.

Jeśli Twój plik CSV nie zawiera wiersza nagłówka, musisz użyć --fields lub parametr --fieldFile parametr, aby określić nazwy pól.

Wyobraź sobie więc, że nasz plik CSV nie zawiera linii kolumn, a zamiast tego wyglądał tak:

1,"Wag","Dog"
2,"Bark","Dog"
3,"Meow","Cat"

Następnie moglibyśmy użyć następującego polecenia, aby zaimportować plik:

mongoimport --db=PetHotel --type=csv --fields=_id,name,type --file=pets.csv

To ma taki sam wynik jak w poprzednim przykładzie.

Określ nazwę kolekcji

Możesz użyć --collection (lub -c ), aby określić kolekcję, do której ma zostać zaimportowany plik.

Oto przykład użycia --collection parametr do importowania tego samego pliku do innej kolekcji:

mongoimport --db=PetHotel --collection=pets2 --type=csv --fields=_id,name,type --file=pets.csv

Jeśli kolekcja jeszcze nie istnieje, zostanie utworzona. Jeśli już istnieje, wynik importu będzie zależał od używanego trybu (więcej o tym później).

W naszym przypadku tak wygląda nowo utworzona kolekcja:

db.pets2.find()

Wynik:

{ "_id" : 2, "name" : "Bark", "type" : "Dog" }
{ "_id" : 3, "name" : "Meow", "type" : "Cat" }
{ "_id" : 1, "name" : "Wag", "type" : "Dog" }

Upuść kolekcję przed importowaniem

Możesz użyć --drop parametr, aby usunąć dowolną istniejącą kolekcję o tej samej nazwie, co ta, którą próbujesz utworzyć/zaimportować.

Wyobraź sobie, że mamy drugi plik o nazwie pets2.csv , z następującym dokumentem:

_id,name,type,weight
4,"Bubbles","Fish",3

Oto, co się stanie, jeśli zaimportuję ten dokument do pets2 kolekcja za pomocą --drop opcja:

mongoimport --db=PetHotel --collection=pets2 --type=csv --headerline --drop --file=pets2.csv

Wyjście:

2021-01-03T15:05:40.281+1000	connected to: mongodb://localhost/
2021-01-03T15:05:40.284+1000	dropping: PetHotel.pets2
2021-01-03T15:05:40.336+1000	1 document(s) imported successfully. 0 document(s) failed to import.

To mówi nam, że kolekcja została usunięta i jeden dokument został zaimportowany.

Przyjrzyjmy się kolekcji:

db.pets2.find()

Wynik:

{ "_id" : 4, "name" : "Bubbles", "type" : "Fish", "weight" : 3 }

Zgodnie z oczekiwaniami, nasz nowy dokument jest jedynym w kolekcji.

Tryby importu

Istnieją różne tryby importu, których można używać z mongoimport . Te tryby określają, co się stanie, jeśli w kolekcji, do której próbujesz zaimportować, znajdują się już pasujące dokumenty.

Tryby są następujące:

Tryb Opis
insert To jest tryb domyślny. Ten tryb wstawia dokumenty z pliku importu. Jeśli pasujący dokument już istnieje w kolekcji, wystąpi błąd. Pasujący dokument to taki, który ma ten sam unikalny identyfikator (taki jak pasujący _id pole) jako dokument w pliku importu.
upsert Zastępuje istniejące dokumenty w bazie danych pasującymi dokumentami z pliku importu. Wszystkie inne dokumenty są wstawione.
merge Scala istniejące dokumenty, które pasują do dokumentu w pliku importu, z nowym dokumentem. Wszystkie inne dokumenty są wstawione.
delete Usuwa istniejące dokumenty w bazie danych, które pasują do dokumentu w pliku importu. Wszelkie niezgodne dokumenty nie mają wpływu.

Zobacz tryby importu mongoimport dla przykładów każdego trybu.

Sprawdź mongoimport

mongoimport 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/mongoimport zainstalowany, spróbuj uruchomić następujące polecenie w terminalu lub wierszu poleceń, aby sprawdzić:

mongoimport --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 uruchomić mongoimport Polecenia?

Musisz uruchomić mongoimport 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. Słownik Pythona:usuwanie u' chars

  2. Przekieruj wyjście zapytania mongo do pliku csv

  3. Wybierz Max() z group by w mongodb

  4. MongoDB nie może uruchomić serwera:domyślny silnik pamięci masowej „wiredTiger” nie jest dostępny w tej wersji mongod

  5. Błąd krytyczny:nie znaleziono klasy „MongoDB\Driver\Manager”