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

dropIndexes

Nesta página

  • Compatibilidade
  • Sintaxe
  • Campos de comando
  • Comportamento
  • Exemplos
dropIndexes

Alterado na versão 5.0.

O comando dropIndexes elimina um ou mais índices (exceto o índice no campo _id e o último índice de chave de shard restante, se houver) da collection especificada.

Dica

Em mongosh, esse comando também pode ser executado por meio dos métodos assistente db.collection.dropIndex() e db.collection.dropIndexes() .

Os métodos auxiliares são práticos para os usuários mongosh, mas podem não retornar o mesmo nível de informações que os comandos do banco de dados. Nos casos em que a praticidade não for necessária ou os campos de retorno adicionais forem necessários, use o comando de banco de dados.

Esse comando 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

O comando tem a seguinte sintaxe:

{ dropIndexes: <string>, index: <string|document|arrayofstrings>, writeConcern: <document>, comment: <any> }

O comando utiliza os seguintes campos:

Campo
Tipo
Descrição
dropIndexes
String
O nome da collection cujos índices serão eliminados.
index
string ou documento ou array de strings

O índice ou os índices a serem eliminados.

  • Para eliminar todos os índices, exceto o índice _id e o último índice da chave de shard restante da collection, se houver , especifique "*".

  • Para eliminar um único índice, especifique o nome do índice, o documento de especificação do índice (a menos que seja um índice de texto ) ou um array do nome do índice. Para eliminar um índice de texto, especifique os nomes do índice em vez do documento de especificação do índice. Se este índice for o último índice de chave de shard restante, dropIndexes reporta um erro.

  • Para eliminar vários índices, especifique uma array dos nomes dos índices.

writeConcern
documento
Opcional. Um documento que Express a drop referência de escrita do comando . Omita para usar a referência de escrita padrão.
comment
any

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).

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

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.

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 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.

Novo na versão 4.4: Se um índice especificado para dropIndexes ainda estiver construindo, o dropIndexes tentará abortar a construção em andamento. Abortar a construção de um índice tem o mesmo efeito que eliminar o índice criado. Antes do MongoDB 4.4, o dropIndexes retornaria um erro se a collection tivesse alguma construção de índice em andamento.

Para conjuntos de réplicas, execute dropIndexes no primário. A primária cancela a construção do índice e cria uma entrada de oplog "abortIndexBuild" associada. Os secundários que replicam a entrada oplog "abortIndexBuild" abortam a construção do índice em andamento e descartam o trabalho de construção. Consulte Processo de construção de índice para obter documentação detalhada sobre o processo de construção de índice e o momento específico para encerrar uma construção de índice em andamento.

Os índices especificados para dropIndexes devem ser o conjunto inteiro de compilações em andamento associadas a uma única operação createIndexes ou db.collection.createIndexes() . Para eliminar um índice específico de um conjunto de compilações em andamento relacionadas, aguarde até que as compilações do índice sejam concluídas e especifique esse índice para dropIndexes.

Por exemplo, uma operação createIndexes / createIndexes() cria três índices. Supondo que todas as três construções de índice estejam em andamento, dropIndexes deve especificar todos os três índices para abortar as construções de índices.

Use currentOp para identificar as construções de índice associadas a uma operação createIndexes / createIndexes() . Consulte Operações de indexação ativas para obter 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.

  • Para eliminar todos os índices que não sejam_id , especifique "*" para index.

    db.runCommand( { dropIndexes: "collection", index: "*" } )
  • Para eliminar um único índice, emita o comando especificando o nome do índice que você deseja eliminar. Por exemplo, para eliminar o índice denominado age_1, utilize o seguinte comando:

    db.runCommand( { dropIndexes: "collection", index: "age_1" })

    mongosh fornece os métodos auxiliares db.collection.dropIndex() e db.collection.dropIndexes():

    db.collection.dropIndex("age_1");
  • Para eliminar vários índices, emita o comando especificando um array de nomes de índice:

    db.runCommand( { dropIndexes: "collection", index: [ "age_1", "age_1_status_1" ] } )

Dica

Veja também:

Voltar

dropConnections