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.