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 JSON do MongoDB.
Przykład
Załóżmy, że mamy następujący plik JSON o nazwie pets.json
:
{ "_id" : 1, "name" : "Wag", "type" : "Dog" } { "_id" : 2, "name" : "Bark", "type" : "Dog" } { "_id" : 3, "name" : "Meow", "type" : "Cat" }
Następujące polecenie importuje plik JSON do MongoDB:
mongoimport --db=PetHotel --file=pets.json
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.
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 --file=pets.json
Jeśli kolekcja jeszcze nie istnieje, zostanie utworzona. Jeśli już istnieje, wynik importu będzie zależał od używanego trybu (więcej na ten temat poniżej).
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.json
, z następującym dokumentem:
{ "_id" : 4, "name" : "Bubbles" } { "_id" : 5, "name" : "Hop", "type": "Kangaroo" }
Oto, co się stanie, jeśli zaimportuję ten dokument do pets
kolekcja za pomocą --drop
opcja:
mongoimport --db=PetHotel --collection=pets --drop --file=pets2.json
Wyjście:
2021-01-03T15:42:25.626+1000 connected to: mongodb://localhost/ 2021-01-03T15:42:25.640+1000 dropping: PetHotel.pets 2021-01-03T15:42:25.734+1000 2 document(s) imported successfully. 0 document(s) failed to import.
Wiadomość informuje nas, że kolekcja została usunięta i jeden dokument został zaimportowany.
Przyjrzyjmy się kolekcji:
db.pets.find()
Wynik:
{ "_id" : 5, "name" : "Hop", "type" : "Kangaroo" } { "_id" : 4, "name" : "Bubbles" }
Zgodnie z oczekiwaniami, nasze dwa nowe dokumenty są jedynymi 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 uruchamiać polecenia?
Nie zapomnij, musisz uruchomić mongoimport
polecenia z wiersza poleceń systemu (np. nowe okno terminala lub wiersza polecenia).
Nie uruchamiaj ich z mongo
powłoka.