Puedes remover un índice específico de una colección. Es posible que debas descartar un índice si observas un impacto negativo en el rendimiento, deseas reemplazarlo por un nuevo índice o ya no necesitas el índice.
Para eliminar un índice, utilice uno de los siguientes métodos de shell:
Método | Descripción |
|---|---|
Elimina un índice específico de la colección. | |
Elimina todos los índices extraíbles de la colección o de una matriz de índices, si se especifica. |
Acerca de esta tarea
Puede eliminar cualquier índice excepto el predeterminado en el campo _id. Para eliminar el índice _id, debe eliminar toda la colección.
Si elimina un índice que se usa activamente en producción, podría experimentar una degradación del rendimiento. Antes de eliminar un índice, considere ocultarlo para evaluar el posible impacto de la eliminación.
Antes de comenzar
Para descartar un índice, necesitas su nombre. Para obtener todos los nombres de índices de una colección, ejecuta el método getIndexes():
db.<collection>.getIndexes()
Procedimientos
Después de identificar qué índices eliminar, utilice uno de los siguientes métodos de eliminación para la colección especificada:
Eliminar un solo índice
Para eliminar un índice específico, utilice el método y especifique el nombre del dropIndex() índice:
db.<collection>.dropIndex("<indexName>")
Eliminar múltiples índices
Para descartar múltiples índices, utiliza el método dropIndexes() y especifica un arreglo de nombres de índices:
db.<collection>.dropIndexes( [ "<index1>", "<index2>", "<index3>" ] )
Eliminar todos los índices excepto el _id índice
Para eliminar todos los índices excepto el _id índice, utilice el dropIndexes() método:
db.<collection>.dropIndexes()
Resultados
Después de eliminar un índice, el sistema devuelve información sobre el estado de la operación.
Ejemplo de salida:
... { "nIndexesWas" : 3, "ok" : 1 } ...
El valor de nIndexesWas refleja la cantidad de índices antes de eliminar un índice.
Para confirmar que el índice fue descartado, ejecuta el método db.collection.getIndexes():
db.<collection>.getIndexes()
El índice eliminado ya no aparece en la salida getIndexes().
Obtén más información
Para obtener más información sobre cómo administrar sus índices existentes,consulte Administrar índices.
Para aprender cómo eliminar un índice en MongoDB Compass, consulte Administrar índices en Compass.