Menu Docs

dropIndexes

dropIndexes

Alterado na versão 6.0.

The dropIndexes command drops one or more indexes (except the index on the _id field and the last remaining shard key index, if one exists) from the specified collection.

Dica

No mongosh, esse comando também pode ser executado por meio dos métodos auxiliares 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:

db.runCommand(
{
dropIndexes: <string>,
index: <string|document|arrayofstrings>,
writeConcern: <document>, comment: <any>
}
)

O comando utiliza os seguintes campos:

Campo
Tipo
Descrição

dropIndexes

String

The name of the collection whose indexes to drop.

index

string ou documento ou array de strings

The index or indexes to drop.

  • To drop all indexes except the _id index and the last remaining shard key index from the collection if one exists, specify "*".

  • To drop a single index, specify either the index name, the index specification document (unless the index is a text index), or an array of the index name. To drop a text index, specify the index names instead of the index specification document. If this index is the last remaining shard key index, dropIndexes raises an error.

  • To drop multiple indexes, specify an array of the index names.

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 6.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 partir do MongoDB 5.2, você pode usar 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.

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.

Se um índice especificado para dropIndexes ainda estiver compilando, 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 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.

  • To drop all non-_id indexes , specify "*" for the index.

    db.runCommand( { dropIndexes: "collection", index: "*" } )
  • To drop a single index, issue the command by specifying the name of the index you want to drop. For example, to drop the index named age_1, use the following command:

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

    mongosh provides the helper methods db.collection.dropIndex() and db.collection.dropIndexes():

    db.collection.dropIndex("age_1");
  • To drop multiple indexes, issue the command by specifying an array of the index names:

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