db.collection.drop()
MongoDB com drivers
Esta página documenta um método mongosh
. Para ver o método equivalente em um driver MongoDB, consulte a página correspondente da sua linguagem de programação:
Definição
db.collection.drop(<options>)
Remove uma coleção ouvisualização do banco de dados. O método também remove quaisquer índices associados à coleção descartada. O método fornece um wrapper em torno do comando
drop
.Retorna: true
Observação
Se a coleção especificada não existir, db.collection.drop()
ainda retorna true
.
Compatibilidade
Você pode utilizar o db.collection.drop()
para implantações hospedadas nos seguintes ambientes:
MongoDB Atlas: o serviço totalmente gerenciado para implantações do MongoDB na nuvem
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 método drop()
tem o seguinte formato:
db.collection.drop( { writeConcern: <document> } )
O método drop()
recebe um documento opcional com o seguinte campo:
Campo | Descrição |
---|---|
writeConcern | Opcional. Um documento que expressa a preocupação de gravação da operação Quando emitido em um cluster fragmentado, |
Comportamento
O método
db.collection.drop()
e o comandodrop
criam um invalidar para quaisquer Change Streams abertos na coleção descartada.O método
db.collection.drop()
e o comandodrop
abortam qualquer construção de índice em andamento na coleção de destino antes de descartar a coleção.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.A eliminação de uma coleção exclui seus intervalos de zonas/tags associados.
A partir do MongoDB 5.0, o comando
drop
e o métododb.collection.drop()
retornam um erro se você tentar descartar uma coleção no banco de dados admin ou no banco de dados de configuração a partir de ummongos
. Para descartar essas coleções, conecte-se ao servidor de configuração e execute o comando lá.Aviso
Soltar coleções no banco de dados admin ou no banco de dados de configuração pode deixar seu cluster em um estado inutilizável.
A partir do MongoDB 6.0, o método
db.collection.drop()
descarta a coleção especificada e todas as coleções internas relacionadas aos campos criptografados.Aviso
O comportamento do método
db.collection.drop()
difere do comportamento do métododrop
do driver. A conexão do driver deve ter a criptografia automática habilitada para descartar a coleção especificada e quaisquer coleções internas relacionadas a campos criptografados.mongosh
sempre descarta a coleção especificada e quaisquer coleções internas relacionadas a campos criptografados.
Reutilizando nomes de coleções descartadas em clusters fragmentados
Em um cluster fragmentado, se você criar uma coleção que tenha o mesmo nome de uma coleção excluída anteriormente antes do MongoDB 5.0, mongos
poderá encaminhar operações para o fragmento errado. Para evitar esta situação, use as instruções específicas da versão abaixo:
Para um cluster fragmentado executando o MongoDB 5.0 ou posterior, nenhuma ação especial é necessária. Use o método drop()
e, em seguida, crie uma nova coleta com o mesmo nome.
Para um cluster fragmentado, se você utilizar o método drop()
e, em seguida, criar uma nova coleção com o mesmo nome, você deverá:
Limpe a tabela de roteamento em cache a cada
mongos
usandoflushRouterConfig
.Use
db.collection.remove()
para remover os documentos existentes e reutilizar a coleção.
Limpar as tabelas de roteamento em cache é o procedimento preferido, pois é mais rápido do que remover coletas fragmentadas com db.collection.remove()
. Utilize somente a abordagem remove()
se você deseja evitar limpar o cache.
Bloqueio de recursos
db.collection.drop()
obtém um bloqueio exclusivo na coleção especificada durante a operação. Todas as operações subsequentes na coleção devem aguardar até que db.collection.drop()
libere o bloqueio.
Exemplo
Elimine uma collection usando write concern padrão
A operação a seguir descarta a coleção students
no banco de dados atual.
db.students.drop()
Descarte uma coleção usando a preocupação de gravação w: 1
db.collection.drop()
aceita um documento de opções.
A operação a seguir descarta a coleção students
no banco de dados atual. A operação usa a write concern 1
:
db.students.drop( { writeConcern: { w: 1 } } )