Docs Menu
Docs Home
/ /
Colecciones

db.collection.dropIndexes()

MongoDB con controladores

C#Java SyncNode.jsPyMongoCC++GoJava RSKotlin CoroutineKotlin SyncPHPMongoidRustScala
db.collection.dropIndexes()

Elimina el índice o los índices especificados (excepto el índice en el campo _id y el último índice de clave de fragmento restante) de una colección.

Puede utilizar este método para:

  • Eliminar todos los índices excepto el _id de 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 un índice de texto, en cuyo caso utilice el nombre del índice para eliminarlo):

      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, utilice el db.collection.getIndexes() método.

  • 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 la matriz de nombres de índice incluye un índice inexistente, el método genera un error sin eliminar ninguno de los índices especificados.

    Tip

    Para obtener los nombres de los índices, utilice el db.collection.getIndexes() método.

El método toma el siguiente parámetro db.collection.dropIndexes() opcional:

Parameter
Tipo
Descripción

indexes

cadena o documento o matriz de cadenas

Opcional. Especifica el índice o los índices que se eliminarán.

Para eliminar todo el índice excepto el _id de la colección, omita el parámetro.

Para eliminar un solo índice, especifique el nombre del índice, el documento de especificación del índice (a menos que sea de texto) o una matriz con el nombre del índice. Para eliminar un índice de texto, especifique el nombre del índice o una matriz con el nombre del índice en lugar del documento de especificación del índice.

Para eliminar varios índices, especifique una matriz con los nombres de los índices.

A partir de MongoDB,5.0 dropIndexes genera un error si se intenta usarlo para eliminar el último índice compatible con la clave de fragmento restante. Al pasar "*" a dropIndexes se eliminan todos los índices excepto el _id índice y el último índice compatible con la clave de fragmento restante, si existe.

La operación solo elimina las consultas que utilizan el índice que se va a eliminar. Esto puede incluir consultas que consideran el índice como parte de la dropIndexes() planificaciónde consultas.

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.

Si se pasa al método una matriz de nombres de índice que incluye un índice inexistente, el método genera un error sin eliminar ninguno de los índices especificados.

No se puede descartar el índice por defecto en el campo _id.

Para eliminar un índice de texto, especifique el nombre del índice en lugar del documento de especificación del índice.

Novedades 4.4 de la versión: Si un índice especificado en db.collection.dropIndexes() aún se está compilando, intenta anular la compilación en curso. Anular la compilación de un índice tiene el mismo efecto que descartar eldropIndexes() índice compilado. Antes de MongoDB,4.4 dropIndexes() 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 dropIndexes() especificados en deben ser el conjunto completo de compilaciones en curso asociadas a una sola operación o. Para eliminar un índice específico de un conjunto de compilaciones en curso relacionadas, espere a que finalice la compilación del índice y especifique ese índice createIndexes db.collection.createIndexes() en.dropIndexes()

Por ejemplo, una createIndexes operación / crea tres índices. Suponiendo que las createIndexes() dropIndexes() tres compilaciones de índices están en curso, debe especificar los tres índices para anularlas y eliminarlos.

Utilice para identificar las compilaciones currentOp de índice asociadas a una operación /.createIndexes() Consulte Operaciones de createIndexes indexación activas para ver un ejemplo.

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.

Volver

db.collection.dropIndex

En esta página