Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

db.colección.dropIndexes() (método mongosh)

MongoDB con controladores

Esta página documenta un método mongosh. Para ver el método equivalente en un driver de MongoDB, consulte la página correspondiente a su lenguaje de programación:
db.collection.dropIndexes()

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

Se puede utilizar el método para:

  • Descartar todos los índices excepto el de _id de una colección.

    db.collection.dropIndexes()
  • Descartar un índice específico de una colección. Para especificar el índice, se puede pasar el método de una de las siguientes maneras:

    • El documento de especificación del índice (a menos que el índice sea un índice de texto, en cuyo caso se debe utilizar el nombre del índice para descartarlo):

      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().

  • Descartar los índices especificados de una colección. Para especificar varios índices a descartar, pase al método un arreglo de nombres de índices:

    db.collection.dropIndexes( [ "a_1_b_1", "a_1", "a_1__id_-1" ] )

    Si la matriz de nombres de índices incluye un índice inexistente, el método ignora dicho índice inexistente y descarta los índices especificados restantes.

    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:

Parameter
Tipo
Descripción

indexes

string 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.

Este método está disponible en implementaciones alojadas en los siguientes entornos:

  • MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube

Nota

Este comando es compatible con todos los clústeres de MongoDB Atlas. Para obtener información sobre el soporte de Atlas para todos los comandos, consulte Comandos no compatibles.

  • MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB

  • MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.

A partir de MongoDB, 8.3, db.collection.dropIndexes() es idempotente. Si se especifica un índice que no existe, db.collection.dropIndexes() ignora el índice inexistente y se completa correctamente en lugar de devolver un error IndexNotFound. En versiones anteriores, db.collection.dropIndexes() devuelve un error IndexNotFound si el índice especificado no existe.

A partir de MongoDB 6.0, db.collection.dropIndexes() genera un error si se intenta usar para remover el último índice de clave de partición compatible que queda. Pasar "*" a db.collection.dropIndexes() descarta todos los índices excepto el índice _id y el último índice compatible con la clave de partición, si existe uno.

Puedes usar db.collection.dropIndexes() para eliminar índices existentes en la misma colección, incluso si hay una compilación en curso en otro índice. En versiones anteriores, intentar eliminar un índice diferente durante una compilación de índice en curso generaba un error BackgroundOperationInProgressForNamespace.

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.

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.

A partir de MongoDB 8.3, si una matriz de nombres de índices incluye un índice inexistente, db.collection.dropIndexes() ignora el índice inexistente y elimina los índices especificados restantes.

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

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

Si un índice especificado a db.collection.dropIndexes() todavía se está compilando, db.collection.dropIndexes() intenta detener la compilación en curso. Detener la creación de índices tiene el mismo efecto que descartar el índice creado.

Para los sets de réplicas, ejecuta db.collection.dropIndexes() en el primario. El primario aborta la creación de índices y crea una entrada de oplog asociada “abortIndexBuild”. Los secundarios que replican la entrada de oplog “abortIndexBuild” detienen la creación de índices y descartan la tarea de compilación. Consulta Proceso de creación de índices para obtener documentación detallada sobre el proceso de creación de índices.

Se puede utilizar currentOp para identificar las creaciones de índices asociadas a una operación createIndexes o db.collection.createIndexes(). Consultar Operaciones de 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.

Califique esta página