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

db.collection.dropIndex()

Nesta página

  • Definição
  • Comportamento
  • Exemplo
db.collection.dropIndex(index)

Importante

Método mongosh

Esta página documenta um método mongosh . Esta não é a documentação para comandos de banco de dados ou drivers específicos de idioma, como Node.js.

Para o comando do banco de dados, consulte o comando dropIndexes.

Para drivers de API do MongoDB, consulte a documentação do driver MongoDB específica do idioma.

Para a documentação de shell legada do mongo, consulte a documentação para a versão correspondente do MongoDB Server:

mongo shell v4.4

Descarta ou remove o índice especificado de uma coleção.

Observação

Para obter o nome do índice ou o documento de especificação do índice para o método db.collection.dropIndex() , use o método db.collection.getIndexes() .

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

Parâmetro
Tipo
Descrição
index
string ou documento

Obrigatório. Especifica o índice a a ser descartado. Você pode especificar o índice pelo nome do índice ou pelo documento de especificação do índice.

Para descartar um índice de texto, especifique o nome do índice.

Você não pode especificar "*" para eliminar todos os índices que não sejam_id . Use db.collection.dropIndexes() em vez disso.

Se um índice especificado para db.collection.dropIndex() ainda estiver construindo, o db.collection.dropIndex() tentará parar a construção em andamento. Parar uma construção de índice tem o mesmo efeito que descartar o índice construído. Consulte Parar compilações de índice em andamento para obter documentação mais completa.

A partir do MongoDB 5.2, você pode usar db.collection.dropIndex() 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 .

db.collection.dropIndex() 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.dropIndex() libere o trava.

Se um índice especificado para db.collection.dropIndex() ainda estiver construindo, o db.collection.dropIndex() tentará parar a construção em andamento. Parar uma construção de índice tem o mesmo efeito que descartar o índice construído.

Para conjuntos de réplicas, execute db.collection.dropIndex() no primário. O primário interrompe a construção do índice e cria uma entrada oplog "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 queries. Ao ocultar um índice do planejador, você pode avaliar o possível impacto da eliminação de um índice sem eliminá-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 soltá-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.

Considere uma coleção pets. Chamando o método db.collection.getIndexes() na coleção pets retorna os seguintes índices:

[
{
"v" : 2,
"key" : {
"_id" : 1
},
"name" : "_id_"
},
{
"v" : 2,
"key" : {
"cat" : -1
},
"name" : "catIdx"
},
{
"v" : 2,
"key" : {
"cat" : 1,
"dog" : -1
},
"name" : "cat_1_dog_-1"
}
]

O índice de campo único no campo cat tem o nome especificado pelo usuário de catIdx [1] e o documento de especificação do índice de { "cat" : -1 }.

Para eliminar o índice catIdx, você pode usar o nome do índice:

db.pets.dropIndex( "catIdx" )

Ou você pode usar o documento de especificação de índice { "cat" : -1 }:

db.pets.dropIndex( { "cat" : -1 } )
[1] Durante a criação do índice, se o usuário não especificar um nome de índice, o sistema gerará o nome concatenando o campo e o valor da chave do índice com um sublinhado, por exemplo. cat_1.
← db.collection.drop()