Nas versões anteriores do MongoDB, você poderia usar o
copyDB
comando ou seu método auxiliar, db.copyDatabase()
para copiar um banco de dados. Desde então, o MongoDB os depreciou. Além disso, a partir da versão 4.2, o MongoDB removeu o
copydb
comando e, portanto, também o comando db.copyDatabase()
método, o que significa que você não pode usá-los mesmo se quiser se estiver usando o MongoDB 4.2 ou posterior. Felizmente, há outra maneira de copiar um banco de dados MongoDB.
Verificar ferramentas de banco de dados MongoDB
No MongoDB, você pode clonar um banco de dados usando as ferramentas de banco de dados do MongoDB. Especificamente, você pode usar
mongodump
e mongorestore
. As ferramentas de banco de dados do MongoDB são um conjunto de utilitários de linha de comando para trabalhar com o MongoDB.
Se você não tem certeza se tem o MongoDB Database Tools instalado, tente executar os seguintes comandos em seu Terminal ou Prompt de Comando para verificar:
mongodump --version
mongorestore --version
Isso verifica especificamente o
mongodump
e mongorestore
versões. Se você não os tiver, você pode usar as instruções de instalação no site do MongoDB para instalar o MongoDB Database Tools em seu sistema.
Exemplo de clonagem de um banco de dados
Você precisa executar o
mongodump
e mongorestore
da linha de comando do seu sistema (por exemplo, um novo Terminal ou janela de prompt de comando). Não execute a partir do mongo
Concha. Aqui está um exemplo de código que clona um banco de dados:
mongodump --archive --db=PetHotel | mongorestore --archive --nsFrom='PetHotel.*' --nsTo='PetHouse.*'
Neste caso, fazemos backup do
PetHotel
banco de dados e, em seguida, restaure todas as suas coleções em um banco de dados chamado PetHouse
. Em outras palavras, clonamos o PetHotel
banco de dados como PetHouse
. Isso usa
mongodump
para criar um arquivo de backup do banco de dados, então mongorestore
para restaurar esse banco de dados com um nome diferente. Fizemos isso despejando o banco de dados no fluxo de saída padrão e canalizando para mongorestore
. Veja o que cada parâmetro faz:
Parâmetro | Descrição |
---|---|
--archive | Grava a saída em um arquivo especificado ou, se o arquivo não for especificado, grava na saída padrão (stdout ). No nosso caso, o arquivo não foi especificado, então ele gravou na saída padrão. |
--db | Especifica um banco de dados para backup. Neste caso, fazemos backup do PetHotel banco de dados. |
--nsFrom | Especifica a coleção no arquivo de despejo. O curinga asterisco (* ) especifica todas as coleções. |
--nsTo | Especifica o nome da coleção que deve ser usado no banco de dados restaurado. |
Você também pode usar
mongodump
para despejar todos os bancos de dados. Para fazer isso, basta executar mongodump
sem nenhum argumento. No entanto, quando você faz isso, não inclui o local
e config
bancos de dados em seu dump.