Menu Docs

Página inicial do DocsDesenvolver aplicaçõesManual do MongoDB

banco de dados suspenso

Nesta página

  • Definição
  • Sintaxe
  • Campos de comando
  • Comportamento
  • Exemplo
dropDatabase

O comando dropDatabase descarta o banco de dados atual, excluindo os arquivos de dados associados.

O comando tem a seguinte sintaxe:

db.runCommand(
{
dropDatabase: 1,
writeConcern: <document>,
comment: <any>
}
)

O comando usa os seguintes campos opcionais:

Campo
Descrição
writeConcern

Opcional. Um documento expressando o write concern a ser usado se for maior que "majority"

{ w: <value>, j: <boolean>, wtimeout: <number> }

Omita o uso da preocupação de gravação padrão/mínima de"majority".

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 "majority" , a operação usará "majority" . Caso contrário, a write concern especificada será usada.

Quando emitido em um cluster fragmentado, o MongoDB converte a write concern especificada em "majority".

Consulte também Comportamento.

comment

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 auxiliar db.dropDatabase().

A partir da versão 4,.2.2, a operação requer somente um bloqueio exclusivo do banco de dados (X).

Nas versões 3.6-4.2.1, a operação usa um bloqueio de banco de dados exclusivo (X) ao descartar as collections no banco de dados, mas um bloqueio global ao descartar o banco de dados agora vazio.

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.

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.

Conjuntos de réplicas

No mínimo, dropDatabase espera 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 write concern "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, siga estas etapas adicionais para usar o comando dropDatabase , específico para sua versão do MongoDB:

  • Para MongoDB 5,0 e posterior, você deve:

    1. Execute o comando dropDatabase em um mongos, nenhuma etapa adicional necessária.

  • Para MongoDB 4.2, você deve:

    1. Executar o comando dropDatabase em um mongos.

    2. Depois que o comando for concluído com êxito, execute o comando dropDatabase mais uma vez em um mongos.

    3. Utilizar o comando flushRouterConfig em todas mongos as instâncias antes de ler ou gravar neste banco de dados.

Essas etapas garantem que todos os nós do cluster atualizem o cache de metadados, o que inclui o local da fragmentação primária do novo banco de dados. Caso contrário, você poderá perder dados nas leituras e não gravar dados no fragmento correto. Para recuperar, você deve intervir manualmente.

A partir do MongoDB 5.0, o comando dropDatabase e o método db.dropDatabase() retornam um erro se você tentar soltar o banco de dados de administração ou o banco de dados de configuração de um mongos.

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.

O método db.dropDatabase() e dropDatabase criam um invalidar para quaisquer Alterar Streams abertos no banco de dados descartado ou abertos nas coleções no banco de dados descartado.

O exemplo a seguir em mongosh usa a use <database> operação 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 dados temp :

use temp
db.runCommand( { dropDatabase: 1 } )

Dica

Veja também:

← derrubar