Definição
dropDatabaseO comando
dropDatabasedescarta o banco de dados atual, excluindo os arquivos de dados associados.
Compatibilidade
Esse comando está disponÃvel em implantações hospedadas nos seguintes ambientes:
- MongoDB Atlas: o serviço totalmente gerenciado para implantações MongoDB na nuvem
Observação
Este comando é suportado em todos os clusters do MongoDB Atlas . Para obter informações sobre o suporte do Atlas para todos os comandos, consulte Comandos não suportados.
MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB
MongoDB Community: uma versão com código disponÃvel, de uso gratuito e autogerenciada do MongoDB
Sintaxe
O comando tem a seguinte sintaxe:
db.runCommand( { dropDatabase: 1, writeConcern: <document>, comment: <any> } )
Campos de comando
O comando usa os seguintes campos opcionais:
Campo | Descrição | |
|---|---|---|
| Opcional. Um documento expressando o write concern a ser usado se for maior que Omita o uso da preocupação de gravação padrão/mÃnima de Quando emitida em um conjunto de réplicas, se a write concern especificada resultar em menos confirmações de membro do que a write concern Quando emitido em um cluster fragmentado, o MongoDB converte a write concern especificada em Consulte também Comportamento. | |
| Opcional. Um comentário fornecido pelo usuário para anexar a este comando. Depois de definido, esse comentário aparece junto com os registros desse comando nos seguintes locais:
Um comentário pode ser qualquer tipo BSON válido (string, inteiro, objeto, array etc). |
mongosh também fornece o método assistente db.dropDatabase().
Comportamento
Bloqueios
A operação requer somente um bloqueio exclusivo do banco de dados (X).
Gerenciamento de usuários
Este comando não exclui os usuários associados ao banco de dados atual. Para soltar os usuários associados, execute o comando dropAllUsersFromDatabase no banco de dados que você está excluindo.
Indexes
O método db.dropDatabase() e o comando dropDatabase abortam qualquer compilação de Ãndice em andamento sobre coleções no banco de dados de destino antes de descartar o banco de dados. Abortar a construção de um Ãndice tem o mesmo efeito que eliminar o Ãndice criado.
Para conjuntos de réplicas ou conjuntos de réplicas de estilhaços, abortar um Ãndice no primário não anula simultaneamente as compilações de Ãndice secundário. O MongoDB tenta abortar as compilações em andamento para os Ãndices especificados no primário e, se for bem-sucedido, cria uma entrada de oplog abort associada. Os membros secundários com compilações replicadas em andamento aguardam uma entrada de oplog de confirmação ou abortamento do primário antes de confirmar ou abortar a compilação do Ãndice.
Conjunto de Réplica e Clusters Compartilhados
- Conjuntos de réplicas
No mÃnimo,
dropDatabaseaguarda até que todas as quedas de collections no banco de dados tenham se propagado para a maioria dos membros do conjunto de réplicas (ou seja, usa a preocupação de gravação"majority").Se você especificar uma referência de escrita que requer confirmação de menos que a maioria, o comando usará referência de escrita
"majority".Se você especificar uma referência de escrita que exige confirmação de mais do que a maioria, o comando usará a referência de escrita especificada.
- Clusters fragmentados
Quando emitido em um cluster fragmentado, o MongoDB converte a write concern especificada em
"majority".Se você pretende criar um novo banco de dados com o mesmo nome do banco de dados descartado, execute o comando
dropDatabaseem ummongos.Isso garante que todos os nós do cluster atualizem seu cache de metadados, o qual inclui o local do fragmento primário do novo banco de dados. Caso contrário, você poderá perder dados nas leituras e talvez não grave dados no fragmento correto. Para recuperar, você deve intervir manualmente.
Começando no MongoDB 5.0, o comando
dropDatabasee o métododb.dropDatabase()retornam um erro se você tentar soltar o banco de dados admin ou o banco de dados de configuração de ummongos.Aviso
Descartar o banco de dados de admin ou o banco de dados de configuração pode deixar o cluster em um estado inutilizável.
Fluxos de alterações
O método db.dropDatabase() e dropDatabase criam um evento de invalidação para qualquer change stream do MongoDB aberto no banco de dados descartado ou aberto nas coleções no banco de dados descartado.
Exemplo
O exemplo a seguir em mongosh usa a operação use <database> para alternar o banco de dados atual para o banco de dados temp e, em seguida, usa o comando dropDatabase para descartar o banco de dadostemp :
use temp db.runCommand( { dropDatabase: 1 } )