sql >> Databáze >  >> NoSQL >> MongoDB

Zkopírujte/klonujte databázi v MongoDB

V dřívějších verzích MongoDB jste mohli použít copyDB příkaz nebo jeho pomocná metoda, db.copyDatabase() zkopírovat databázi.

MongoDB je od té doby zavrhl. Počínaje verzí 4.2 také MongoDB odstranil copydb a tedy také db.copyDatabase() metoda, což znamená, že je nemůžete použít, i kdybyste chtěli, pokud používáte MongoDB 4.2 nebo novější.

Naštěstí existuje jiný způsob, jak zkopírovat databázi MongoDB.

Vyhledejte databázové nástroje MongoDB

V MongoDB můžete klonovat databázi pomocí databázových nástrojů MongoDB. Konkrétně můžete použít mongodump a mongorestore .

Databázové nástroje MongoDB jsou sada nástrojů příkazového řádku pro práci s MongoDB.

Pokud si nejste jisti, zda máte nainstalované databázové nástroje MongoDB, zkuste spustit následující příkazy v terminálu nebo příkazovém řádku a zkontrolujte:

mongodump --version
mongorestore --version

To konkrétně kontroluje mongodump a mongorestore verze.

Pokud je nemáte, můžete k instalaci databázových nástrojů MongoDB do vašeho systému použít pokyny k instalaci na webu MongoDB.

Příklad klonování databáze

Musíte spustit mongodump a mongorestore z příkazového řádku vašeho systému (např. nový terminál nebo okno příkazového řádku). Nespouštějte jej z mongo skořápka.

Zde je příklad kódu, který klonuje databázi:

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

V tomto případě zálohujeme PetHotel databázi a poté obnovte všechny její sbírky do databáze s názvem PetHouse . Jinými slovy, naklonovali jsme PetHotel databázi jako PetHouse .

Toto používá mongodump vytvořte záložní soubor databáze a poté mongorestore obnovit tuto databázi pod jiným názvem. Udělali jsme to tak, že jsme uložili databázi do standardního výstupního proudu a nasměrovali do mongorestore .

Každý parametr dělá toto:

Parametr Popis
--archive Zapíše výstup do zadaného archivního souboru nebo, pokud archivní soubor není specifikován, zapíše do standardního výstupu (stdout ). V našem případě je archivní soubor nespecifikován, takže se zapisoval na standardní výstup.
--db Určuje databázi k zálohování. V tomto případě zálohujeme PetHotel databáze.
--nsFrom Určuje kolekci v souboru výpisu. Zástupný znak hvězdička (* ) určuje všechny kolekce.
--nsTo Uvádí název kolekce, která by měla být použita v obnovené databázi.

Můžete také použít mongodump vypsat všechny databáze. Chcete-li to provést, stačí spustit mongodump bez jakýchkoliv argumentů. Když to však uděláte, nezahrnuje local a config databáze ve svém výpisu.


  1. Nasazení MongoDB pomocí Dockeru

  2. redis dump.rdb / ukládání malých souborů

  3. Aktualizace ve forEach na mongodb shellu

  4. Implementuji serializaci a deserializaci NodesJS + Passport + RedisStore?