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.