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.