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.You cannot specify
db.collection.dropIndex("*")to drop all non-_idindexes. Usedb.collection.dropIndexes()instead.
To get the index name or the index specification document for the
db.collection.dropIndex()method, use thedb.collection.getIndexes()method.
Parâmetros
The db.collection.dropIndex() method takes the following parameter:
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 If an index specified to |
Compatibilidade
Esse método está disponível em implantações hospedadas nos seguintes ambientes:
- MongoDB Atlas: The fully managed service for MongoDB deployments in the cloud
Observação
This command is supported in all MongoDB Atlas clusters. For information on Atlas support for all commands, see Unsupported Commands.
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
Starting in MongoDB 8.3, db.collection.dropIndex() is idempotent. If you specify an index that does not exist, db.collection.dropIndex() ignores the non-existent index and completes successfully instead of returning an IndexNotFound error. In earlier versions, db.collection.dropIndex() returns an IndexNotFound error if the specified index does not exist.
You can use db.collection.dropIndex() to drop existing indexes on the same collection even if there is a build in progress on another index. In earlier versions, attempting to drop a different index during an in-progress index build results in a BackgroundOperationInProgressForNamespace error.
Bloqueio de recursos
db.collection.dropIndex() obtains an exclusive lock on the specified collection for the duration of the operation. All subsequent operations on the collection must wait until db.collection.dropIndex() releases the lock.
Interromper construções de índice em andamento
If an index specified to db.collection.dropIndex() is still building, db.collection.dropIndex() attempts to stop the in-progress build. Stopping an index build has the same effect as dropping the built index.
For replica sets, run db.collection.dropIndex() on the primary. The primary stops the index build and creates an associated "abortIndexBuild" oplog entry. Secondaries which replicate the "abortIndexBuild" oplog entry stop the in-progress index build and discard the build job. See Index Build Process for detailed documentation on the index build process.
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_' } ]