Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ / /

db.collection.dropIndexes()

Nesta página

  • Definição
  • Compatibilidade
  • Comportamento

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:

C#Java SyncNode.jsPyMongoCC++GoJava RSKotlin CoroutineKotlin SyncPHPMongoidRustScala
db.collection.dropIndexes()

Descarta o(s) index(es) especificado(s) (exceto o index no field _id e o último index de chave de estilhaço restante) de uma coleção.

Você pode usar o método para:

  • Solte todos, exceto o índice _id de uma coleção.

    db.collection.dropIndexes()
  • Solte um índice especificado de uma coleção. Para especificar o índice, você pode passar o método:

    • O documento de especificação do índice (a menos que o índice seja um índice de texto; nesse caso, use o nome do índice para descartar):

      db.collection.dropIndexes( { a: 1, b: 1 } )
    • O nome do índice:

      db.collection.dropIndexes( "a_1_b_1" )

      Dica

      Para obter os nomes dos índices, utilize o método db.collection.getIndexes().

  • Descarte os índices especificados de uma coleção. Para especificar vários índices a serem descartados, passe ao método uma array de nomes de índices:

    db.collection.dropIndexes( [ "a_1_b_1", "a_1", "a_1__id_-1" ] )

    Se a array de nomes de índice incluir um índice inexistente, o método errará sem eliminar nenhum dos índices especificados.

    Dica

    Para obter os nomes dos índices, utilize o método db.collection.getIndexes().

O método db.collection.dropIndexes() utiliza o seguinte parâmetro opcional:

Parâmetro
Tipo
Descrição
indexes
string ou documento ou array de strings

Opcional. Especifica o índice ou índices a serem eliminados.

Para descartar todos, exceto o índice _id da coleção, omita o parâmetro.

Para soltar um único índice, especifique o nome do índice, o documento de especificação do índice (a menos que o índice seja um índice de texto) ou uma array do nome do índice. Para descartar um índice de texto , especifique o nome do índice ou uma array do nome do índice em vez do documento de especificação do índice.

Para descartar vários índices, especifique uma array com os nomes dos índices.

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

A partir do MongoDB 6.0, db.collection.dropIndexes() gera um erro se você tentar usá-lo para remover o último índice compatível com a chave de fragmento restante. Passar "*" para db.collection.dropIndexes() descarta todos os índices, exceto o índice _id e o último índice compatível com a chave do fragmento restante, se houver.

A partir do MongoDB 5.2, você pode usar db.collection.dropIndexes() para descartar índices existentes na mesma coleção, mesmo que haja uma criação em andamento em outro índice. Em versões anteriores, tentar descartar um índice diferente durante uma construção de índice em andamento resulta em um erro BackgroundOperationInProgressForNamespace.

A operação dropIndexes() apenas elimina queries que estão usando o índice que está sendo descartado. Isso pode incluir queries considerando o índice como parte do planejamento de query.

db.collection.dropIndexes() 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.dropIndexes() libere o bloqueio.

Se for passada ao método um array de nomes de índices que inclua um índice inexistente, o método cometerá um erro sem descartar nenhum dos índices especificados.

Você não pode eliminar o índice padrão no campo _id .

Para eliminar um índice de texto, especifique o nome do índice em vez do documento de especificação do índice.

Se um índice especificado para db.collection.dropIndexes() ainda estiver compilando, db.collection.dropIndexes() tentará parar a compilação em andamento. Interromper uma compilação de índice tem o mesmo efeito que descartar o índice compilado.

Para conjuntos de réplicas, execute db.collection.dropIndexes() no primário. O primário interrompe a construção do índice e cria uma entradaoplog "abortIndexBuild" associada. Os secundários que replicam a entrada oplog "abortIndexBuild" interrompem a construção do índice em andamento e descartam o trabalho de construção. Consulte Processo de construção de índices para obter documentação detalhada sobre o processo de construção de índices.

Utilize currentOp para identificar as construções de índice associadas com uma operação do createIndexes ou db.collection.createIndexes(). Consulte Operações de indexação ativas para ver um exemplo.

O MongoDB oferece a capacidade de ocultar ou exibir índices do planejador de query. Ao ocultar um índice do planejador, você pode avaliar o impacto potencial de descartar um índice sem realmente descartá-lo.

Se, após a avaliação, o usuário decidir descartar o índice, você poderá descartar o índice oculto; ou seja, você não precisa exibi-lo primeiro para descartá-lo.

Se, no entanto, o impacto for negativo, o usuário poderá exibir o índice em vez de precisar recriá-lo. E, como são totalmente mantidos enquanto estão ocultos, os índices ficam imediatamente disponíveis para uso quando são exibidos.

Para obter mais informações sobre índices ocultos, consulte Índices ocultos.

Voltar

db.collection.dropIndex