MongoDB con controladores
Esta página documenta a mongosh . Para ver el método equivalente en un driver de MongoDB, se debe consultar la página correspondiente al lenguaje de programación:
Definición
db.collection.dropIndexes()Descarta el índice o los índices especificados (excepto el índice en el campo
_idy el último índice de clave de partición restante) de una colección.Puede utilizar este método para:
Eliminar todos los índices excepto el
_idde una colección.db.collection.dropIndexes() Eliminar un índice específico de una colección. Para especificar el índice, puede pasar el método:
El documento de especificación del índice (a menos que el índice sea Índice de texto en cuyo caso, utilice el nombre del índice para descartar):
db.collection.dropIndexes( { a: 1, b: 1 } ) El nombre del índice:
db.collection.dropIndexes( "a_1_b_1" ) Tip
Para obtener los nombres de los índices, hay que usar el método
db.collection.getIndexes().
Eliminar los índices especificados de una colección. Para especificar varios índices a eliminar, pase al método una matriz de nombres de índices:
db.collection.dropIndexes( [ "a_1_b_1", "a_1", "a_1__id_-1" ] ) Si el arreglo de nombres de índices incluye un índice inexistente, el método da error sin eliminar ninguno de los índices especificados.
Tip
Para obtener los nombres de los índices, hay que usar el método
db.collection.getIndexes().
El método
db.collection.dropIndexes()toma el siguiente parámetro opcional:ParameterTipoDescripciónindexesstring o documento o arreglo de cadenas
opcional. Especifica el índice o los índices que se van a descartar.
Para descartar todos los índices excepto el índice _id de la colección, omite el parámetro.
Para descartar un solo índice, especifique el nombre del índice, el documento de especificación índice (a menos que el índice sea un índice de texto), o un arreglo con el nombre del índice. Para descartar un índice de texto, especifica el nombre del índice o un arreglo con el nombre del índice en lugar del documento de especificación del índice.
Para descartar múltiples índices, especifica un arreglo de los nombres de los índices.
Comportamiento
No se pueden eliminar Ready los índices durante las compilaciones de índices en curso
A partir de MongoDB 5.0, dropIndexes genera un error si se intenta usarlo para remover el último índice compatible con la clave de partición que queda. Pasar "*" a dropIndexes descarta todos los índices excepto el índice _id y el último índice compatible con la clave de partición restante, si existe alguno.
Eliminar únicamente las consultas relacionadas
La dropIndexes() operación solo cancela las queries que están utilizando el índice que se descartará. Esto puede incluir consultas que consideren el índice como parte de la planificación de consultas.
Bloqueo de recursos
db.collection.dropIndexes() obtiene un bloqueo exclusivo en la colección especificada por el tiempo que dure la operación. Todas las operaciones posteriores en la colección deben esperar hasta que db.collection.dropIndexes() libere el bloqueo.
Nombres de índices
Si al método se le pasa un arreglo de nombres de índices que incluye un índice inexistente, el método genera un error sin eliminar ninguno de los índices especificados.
_id Index
No se puede descartar el índice por defecto en el campo _id.
text Indexes
Para descartar un índice de texto, especifica el nombre del índice en lugar del documento de especificación del índice.
Interrumpe las creaciones de índices en curso
Novedades de la versión 4.4: Si un índice especificado en db.collection.dropIndexes() aún se está compilando, intenta anular la compilación endropIndexes() dropIndexes() curso. Anular la compilación de un índice tiene el mismo efecto que descartar el índice compilado. Antes de MongoDB 4.4, devolvía un error si la colección tenía compilaciones de índice en curso.
Para conjuntos de réplicas, ejecuta dropIndexes() en el principal. El primario aborta la creación del índice y crea una entrada "abortIndexBuild" asociada en el registro oplog. Los nodos secundarios que replican la entrada "abortIndexBuild" en el oplog abortan la creación del índice que estaba en curso y descartan la tarea de creación. Consulta Proceso de creación de índices para obtener documentación detallada sobre el proceso de creación de índices y los momentos específicos para terminar una creación de índices en curso.
Los índices especificados en dropIndexes() deben ser el conjunto completo de compilaciones en curso asociadas a una única createIndexes u db.collection.createIndexes() operación. Para descartar un índice específico de un conjunto de compilaciones relacionadas en curso, espere hasta que se completen las creación de índices y especifique ese índice en dropIndexes()
Por ejemplo, una operación createIndexes / createIndexes() crea tres índices. Si se asume que las tres creaciones de índices están en curso, dropIndexes() debe especificar los tres índices para abortar las creaciones de índices y descartar los índices.
Usar currentOp para identificar las creación de índices asociadas a una createIndexes / createIndexes() operación. Consulta Operaciones de indexación activas para ver un ejemplo.
Hidden Indexes
MongoDB ofrece la capacidad de ocultar o mostrar los índices del planificador de las query. Al ocultar un índice del planificador, puedes evaluar el impacto potencial de eliminar un índice sin realmente eliminarlo.
Si después de la evaluación, el usuario decide descartar el índice, puedes descartar el índice oculto; es decir, no es necesario mostrarlo primero para descartarlo.
Sin embargo, si el impacto es negativo, el usuario puede mostrar el índice en lugar de tener que volver a crear un índice descartado. Y como los índices se mantienen en su totalidad mientras están ocultos, están disponibles de inmediato para su uso una vez que se desocultan.
Para obtener más información sobre los índices ocultos, se puede consultar Índices ocultos.