Definición
db.collection.dropIndex(index)MongoDB con controladores
Esta página es un documento sobre un método
mongosh. Para ver el método equivalente en un driver de MongoDB, se debe consultar la página correspondiente al lenguaje de programación:Descarta o remueve el índice especificado de una colección.
Nota
No se puede descartar el índice por defecto en el campo
_id.No se puede especificar
db.collection.dropIndex("*")para descartar todos los índices que no sean de_id. Usardb.collection.dropIndexes()en su lugar.
Para obtener el nombre del índice o el documento de especificación del índice del método
db.collection.dropIndex(), usa el métododb.collection.getIndexes().El método
db.collection.dropIndex()toma los siguientes parámetros:ParameterTipoDescripciónindexstring o documento
Opcional. Especifica el índice a descartar. Se puede especificar el índice ya sea por el nombre del índice o por el documento de especificación del índice.
Para descartar un índice de texto, se debe especificar el nombre del índice.
No se puede especificar
"*"para descartar todos los índices que no sean_id. Se puede utilizardb.collection.dropIndexes()en su lugar.Si un índice especificado en
db.collection.dropIndex()aún se está compilando, intenta detener la compilación en curso. Detener la compilacióndb.collection.dropIndex()de un índice tiene el mismo efecto que cancelar el índice compilado. Consulte "Anula compilaciones de índices en curso" para obtener documentación más completa.
Compatibilidad
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.
Comportamiento
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 dropIndex() planificaciónde consultas.
Bloqueo de recursos
db.collection.dropIndex() 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.dropIndex() libere el bloqueo.
Aborta las compilaciones de índices en curso
Novedades 4.4 de la versión: Si un índice especificado en db.collection.dropIndex() aún se está construyendo, intenta anular la construcción. Anular la construcción de undropIndex() índice tiene el mismo efecto que descartar el índice construido. Antes de MongoDB,4.4 dropIndex() devolvía un error si el índice especificado aún se estaba construyendo.
El índice especificado endropIndex()debe ser el único índice asociado al generador de índices, es decir, los índices generados por una sola operacióncreateIndexesodb.collection.createIndexes(). Si el generador de índices asociado tiene otras compilaciones en curso, espere a que finalicen y especifique el índice endropIndex().
Por ejemplo, una createIndexes operación / crea tres índices. Suponiendo que las createIndexes() dropIndex() tres compilaciones de índices aún están en curso, no puede abortar ninguna compilación de índice y, por lo tanto, no puede eliminar ninguno de ellos.
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.
En el caso de conjuntos de réplicas o conjuntos de réplicas de fragmentos, anular un índice en el primario no anula simultáneamente las compilacionesdropIndex() de índices secundarios. intenta anular las compilaciones en curso de los índices especificados en el primario y, si lo logra, crea una entrada de registro de operaciones de "anulación" asociada. Los miembros secundarios con compilaciones en curso replicadas esperan una confirmación o una entrada de registro de operaciones de anulación del primario antes de confirmar o anular la compilación del índice.
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.
Ejemplo
Considere una pets colección. Al llamar al método en getIndexes() la pets colección, se devuelven los siguientes índices:
[ { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_" }, { "v" : 2, "key" : { "cat" : -1 }, "name" : "catIdx" }, { "v" : 2, "key" : { "cat" : 1, "dog" : -1 }, "name" : "cat_1_dog_-1" } ]
El índice de campo único en el campo cat tiene el nombre especificado por el usuario de catIdx []1 y el documento de especificación de índice { "cat" : -1 } de.
Para descartar el índice catIdx, se puede usar el nombre del índice:
db.pets.dropIndex( "catIdx" )
O se puede usar el documento de especificaciones del índice { "cat" : -1 }:
db.pets.dropIndex( { "cat" : -1 } )
| [1] | Durante la creación del índice, si el usuario no especifica un nombre de índice, el sistema genera el nombre concatenando el campo de clave de índice y el valor con un guión bajo, porcat_1 ejemplo. |