MongoDB com drivers
Definição
db.collection.dropIndex(index)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 para eliminar todos
db.collection.dropIndex("*")os_idíndices que não sejam. Emdb.collection.dropIndexes()vez disso, use.
Para obter o nome do índice ou o documento de especificação do índice para o método,
db.collection.dropIndex()db.collection.getIndexes()use o método.
Parâmetros
O método utiliza o seguinte db.collection.dropIndex() parâmetro:
Parâmetro | Tipo | Descrição |
|---|---|---|
| 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. Não é possível especificar Se um índice especificado para |
Compatibilidade
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
Comportamento
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 BackgroundOperationInProgressForNamespace erro.
Bloqueio de recursos
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 libere o db.collection.dropIndex() bloqueio.
Interromper construções de índice em andamento
Se um índice especificado para db.collection.dropIndex() ainda estiver construindo, o tentará parar a construção em andamento. Parar uma construção de índice tem o mesmo efeito que descartar odb.collection.dropIndex() í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 um "abortIndexBuild" entrada oplog. Secundários que replicam o "abortIndexBuild" A entrada do oplog interrompe a construção doíndice em andamento e descarta o tarefa 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.
Hidden Indexes
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.
Exemplo
Em uma collection pets, crie um índice descendente no campo cat:
db.pets.createIndex( { cat: -1 }, { name: "catIdx" } )
Para ver os índices na coleção pets, execute o método getIndexes():
db.pets.getIndexes()
[ { v: 2, key: { _id: 1 }, name: '_id_' }, { v: 2, key: { cat: -1 }, name: 'catIdx' } ]
O índice de campo único no campo cat tem o nome especificado pelo usuário de catIdx 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 } )
O comando dropIndex retorna o número de índices na collection antes de o comando ser executado e indica se o comando foi bem-sucedido:
{ nIndexesWas: 2, ok: 1 }
Para confirmar que o índice foi descartado, execute o método getIndexes() novamente:
db.pets.getIndexes()
[ { v: 2, key: { _id: 1 }, name: '_id_' } ]