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 de comandos de banco de dados nem drivers específicos de linguagem, 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 do MongoDB específica da linguagem.

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

Observação

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

  • Você não pode especificar db.collection.dropIndex("*") para descartar todos os índices não_id. Use db.collection.dropIndexes() em vez disso.

Para obter o nome do índice ou o documento de especificação do índice para o método db.collection.dropIndex(), utilize 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

Opcional. Especifica o índice a diminuir. Você pode especificar o índice pelo nome ou pelo documento de especificação.

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

Não é possível especificar "*" para descartar 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 Cancela Construções de Índices em Andamento para obter uma documentação mais completa.

A operação dropIndex() 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.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 bloqueio.

Novo na versão 4.4: Se um índice especificado para db.collection.dropIndex() ainda estiver sendo construído, dropIndex() tentará abortar a construção. Abortar a construção de um índice tem o mesmo efeito que eliminar o índice criado. Antes do MongoDB 4.4, o dropIndex() retornou um erro se o índice especificado ainda estava sendo construído.

O índice especificado para dropIndex() deve ser o único índice associado ao construtor de índices, ou seja, os índices construídos por uma única operação createIndexes ou db.collection.createIndexes() . Se o construtor de índice associado tiver outras compilações em andamento, aguarde até que as compilações sejam concluídas e especifique o índice para dropIndex().

Por exemplo, uma operação createIndexes / createIndexes() cria três índices. Supondo que todas as três compilações de índice ainda estejam em andamento, dropIndex() não pode abortar nenhuma das compilações de índice com êxito e, portanto, não pode descartar nenhum desses í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.

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. dropIndex() tenta abortar as compilações em andamento para os índices especificados no primário e, se for bem-sucedido, cria uma entrada oplog "abort" associada. 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.

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.

Considere uma coleção pets. Chamando o método 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.

Voltar

db.collection.drop

Próximo

db.collection.dropIndexes