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 ou visualizaçã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
Esse método está disponível em implantações hospedadas nos seguintes ambientes:
MongoDB Atlas: o serviço totalmente gerenciado para implantações do MongoDB na nuvem
Observação
Este comando é aceito em todos os clusters do MongoDB Atlas. Para obter informações sobre o suporte do Atlas a 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 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 expressando a preocupação de Quando emitido em um cluster fragmentado, o |
Comportamento
O método
db.collection.drop()e o comandodropcriam um evento de invalidação para qualquer change stream aberto na coleção descartada.O método
db.collection.drop()e o comandodropabortam 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
abortassociada. 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
drope 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étododropdo 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.mongoshsempre 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
mongosusandoflushRouterConfig.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, j: true } } )