Docs Menu
Docs Home
/ /
Administración

dropIndexes (comando de base de datos)

dropIndexes

Cambiado en la versión 6.0.

El comando elimina uno o más índices (excepto el índice en dropIndexes el _id campo y el último índice de clave de fragmento restante, si existe uno) de la colección especificada.

Tip

mongoshEn, este comando también se puede ejecutar a través del db.collection.dropIndex() db.collection.dropIndexes() Métodos auxiliares y.

Los métodos asistente son convenientes para usuarios de mongosh, pero es posible que no proporcionen el mismo nivel de información que los comandos de base de datos. En los casos en que no se necesite la conveniencia o se requieran campos de retorno adicionales, utiliza el comando de base de datos.

Este comando 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.

El comando tiene la siguiente sintaxis:

db.runCommand(
{
dropIndexes: <string>,
index: <string|document|arrayofstrings>,
writeConcern: <document>, comment: <any>
}
)

El comando toma los siguientes campos:

Campo
Tipo
Descripción

dropIndexes

String

El nombre de la colección cuyos índices se eliminarán.

index

cadena o documento o matriz de cadenas

El índice o índices a eliminar.

  • Para descartar todos los índices excepto el índice _id y el último índice de la clave de partición que queda de la colección si existe, especifica "*".

  • Para eliminar un solo índice, especifique el nombre del índice, el documento de especificación del índice (a menos que sea un índice de texto) o una matriz con el nombre del índice. Para eliminar un índice de texto, especifique los nombres de los índices en lugar del documento de especificación del índice. Si este índice es el último índice de clave de fragmento restante, dropIndexes genera un error.

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

writeConcern

Documento

Opcional. Un documento que expresa el nivel de confirmación de escritura del comando drop. Se puede omitir usar el nivel de confirmación de escritura por defecto.

comment

any

Opcional. Un comentario proporcionado por el usuario para adjuntar a este comando. Una vez configurado, este comentario aparece junto a los registros de este comando en las siguientes ubicaciones:

Un comentario puede ser de cualquier tipo BSON válido (string, objeto, arreglo, etc.).

A partir de MongoDB,6.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.

A partir de MongoDB 5.2, puedes utilizar dropIndexes para descartar índices existentes en la misma colección incluso si hay una construcción en curso en otro índice. En versiones anteriores, al intentar descartar un índice diferente durante la creación de índices en curso, se producía el error BackgroundOperationInProgressForNamespace.

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.

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

Si un índice especificado a dropIndexes todavía se está compilando, 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 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.

  • Para descartar todos los índices que no sean_id, especifica "*" para el index.

    db.runCommand( { dropIndexes: "collection", index: "*" } )
  • Para eliminar un solo índice, ejecute el comando especificando el nombre del índice que desea eliminar. Por ejemplo, para eliminar el índice age_1, utilice el siguiente comando:

    db.runCommand( { dropIndexes: "collection", index: "age_1" })

    mongosh proporciona los métodos auxiliares db.collection.dropIndex() db.collection.dropIndexes()y:

    db.collection.dropIndex("age_1");
  • Para eliminar varios índices, ejecute el comando especificando una matriz de nombres de índices:

    db.runCommand( { dropIndexes: "collection", index: [ "age_1", "age_1_status_1" ] } )

Volver

dropConnections

En esta página