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

Kopiuj/klonuj bazę danych w MongoDB

We wcześniejszych wersjach MongoDB można było użyć copyDB polecenie lub jego metoda pomocnicza, db.copyDatabase() skopiować bazę danych.

MongoDB od tego czasu je wycofał. Ponadto, począwszy od wersji 4.2, MongoDB usunęła copydb polecenie, a zatem także db.copyDatabase() metoda, co oznacza, że ​​nie możesz ich używać, nawet jeśli chcesz, jeśli używasz MongoDB 4.2 lub nowszego.

Na szczęście istnieje inny sposób na skopiowanie bazy danych MongoDB.

Sprawdź narzędzia bazy danych MongoDB

W MongoDB możesz sklonować bazę danych za pomocą narzędzi bazy danych MongoDB. W szczególności możesz użyć mongodump i mongorestore .

Narzędzia baz danych MongoDB to zestaw narzędzi wiersza poleceń do pracy z MongoDB.

Jeśli nie masz pewności, czy masz zainstalowane narzędzia baz danych MongoDB, spróbuj uruchomić następujące polecenia w terminalu lub wierszu polecenia, aby sprawdzić:

mongodump --version
mongorestore --version

Sprawdza to konkretnie mongodump i mongorestore wersje.

Jeśli ich nie masz, możesz skorzystać z instrukcji instalacji na stronie MongoDB, aby zainstalować narzędzia bazy danych MongoDB w swoim systemie.

Przykład klonowania bazy danych

Musisz uruchomić mongodump i mongorestore z wiersza poleceń systemu (np. nowe okno terminala lub wiersza polecenia). Nie uruchamiaj go z mongo powłoka.

Oto przykład kodu, który klonuje bazę danych:

mongodump --archive --db=PetHotel | mongorestore --archive  --nsFrom='PetHotel.*' --nsTo='PetHouse.*'

W takim przypadku tworzymy kopię zapasową PetHotel bazy danych, a następnie przywróć wszystkie jej kolekcje do bazy danych o nazwie PetHouse . Innymi słowy, sklonowaliśmy PetHotel baza danych jako PetHouse .

To używa mongodump aby utworzyć kopię zapasową bazy danych, a następnie mongorestore przywrócić tę bazę danych pod inną nazwą. Zrobiliśmy to, zrzucając bazę danych do standardowego strumienia wyjściowego i przesyłając do mongorestore .

Oto, co robi każdy parametr:

Parametr Opis
--archive Zapisuje dane wyjściowe do określonego pliku archiwum lub, jeśli plik archiwum nie jest określony, zapisuje na standardowym wyjściu (stdout ). W naszym przypadku plik archiwum jest nieokreślony, więc zapisał na standardowe wyjście.
--db Określa bazę danych do utworzenia kopii zapasowej. W takim przypadku tworzymy kopię zapasową PetHotel baza danych.
--nsFrom Określa kolekcję w pliku zrzutu. Symbol wieloznaczny z gwiazdką (* ) określa wszystkie kolekcje.
--nsTo Określa nazwę kolekcji, która powinna być używana w przywróconej bazie danych.

Możesz także użyć mongodump zrzucić wszystkie bazy danych. Aby to zrobić, po prostu uruchom mongodump bez żadnych argumentów. Jednak gdy to zrobisz, nie obejmuje local i config bazy danych w swoim zrzucie.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongoose dodaje wiele obiektów do tablicy, jeśli nie istnieje na podstawie

  2. Przekieruj wyjście zapytania mongo do pliku csv

  3. MongoError:nie udało się połączyć z serwerem przy pierwszym połączeniu

  4. Wstaw MongoDB()

  5. VersionError:Nie znaleziono pasującego dokumentu błędu w Node.js/Mongoose