MongoDB – método dropIndexes()

MongoDB es una base de datos de tipo documentum NoSQL. De forma predeterminada, el campo _id es un índice en cualquier colección. Este valor indexado identifica de forma única un documento en una colección. Además, podemos crear un índice para nuestro requerimiento para una recuperación más rápida y mejorar el rendimiento de una operación de MongoDB. Al mismo tiempo, tener demasiados índices también genera una sobrecarga que conduce a un rendimiento deficiente. Durante esos momentos, debemos eliminar los índices que no son necesarios. Entonces, MongoDB proporciona el método dropIndexes(). Este método elimina el índice especificado o todos los índices (excepto el campo _id) de la colección dada.

Sintaxis:

Para soltar todo el índice:

db.nombreColección.dropIndexes()

Para eliminar el índice especificado:

db.nombreColección.dropIndexes(<índice>)

Aquí, el parámetro de índice es un parámetro opcional. Especifica los índices/índice a soltar.

Nota: Puede crear un índice usando el método db.collectionName.createIndex() y para ver los índices use el método db.collectionName.getIndexes(). 

Puntos importantes:

  • A partir de MongoDB 4.2, para especificar múltiples índices para eliminarlos, podemos usar la siguiente sintaxis:

db.<colección>.dropIndexes( [ “a_1_b_1”, “a_1”, “a_1__id_-1” ] )

Al especificar los nombres de los índices, debemos proporcionar explícitamente el nombre de índice correcto y, si el índice proporcionado no está disponible (incluso uno), no se eliminarán los índices especificados.

  • Desde la versión 4.4 de MongoDB en adelante, podemos usar los siguientes comandos también para eliminar los índices:

db.runCommand( { dropIndexes: “nombreColección”, índice: “<nombreíndice1>, <nombreíndice2>” } )

  • A partir de MongoDB 4.2, este método solo elimina aquellas consultas que utilizan el índice que se descarta. Se establecerá un bloqueo cada vez que se emita este comando, todas las operaciones deben esperar hasta que finalice esta llamada al método dropIndexes(). 
  • Para colocar un índice de texto , debemos usar solo el nombre del índice.

Ejemplos:

En los siguientes ejemplos, estamos trabajando con:

Base de datos: ndtvnews

Colección: artículos

Eliminando el índice _id:

En este ejemplo, estamos tratando de eliminar el índice _id:

En la imagen de arriba, podemos ver que _id y name se presentan como índices. En Mongodb, el índice predeterminado es _id. No se puede dejar caer. Incluso si intentamos soltar, obtendremos lo siguiente:

db.articles.dropIndexes({id:1})

Tenemos otro campo de índice llamado «nombre». Ahora bien, este es un índice definido por el usuario, por lo que podemos descartar el índice usando el método dropIndexes().

db.articles.dropIndexes({name:1})

 Aquí, nombre: 1 significa que el nombre es el nombre del campo y se proporciona en orden ascendente.

Eliminación de múltiples índices:

Hay posibilidades de más de 1 índice. Podemos soltarlos fácilmente mediante el método dropIndexes(). Esto eliminará todos los índices presentes en la colección, excepto _id, ya que es el índice predeterminado. Supongamos que tenemos múltiples índices en la colección de artículos.

En la imagen de arriba, el índice «_id» es el índice predeterminado y los otros dos son los índices definidos por el usuario. entonces, los soltaremos usando el método dropIndexes(). 

db.articles.dropIndexes()

Aquí, el método dropIndexes(), elimina todos los índices (excepto el _id) presentes en la colección dada.

Eliminación de índices especificados:

Como ya sabemos, una colección puede contener múltiples índices. Entonces, eliminaremos el índice especificado usando el método dropIndexes(). Supongamos que tenemos múltiples índices en la colección de artículos.

db.articles.dropIndexes("name_1")

Aquí, soltamos el índice usando el nombre del índice, es decir, nombre_1. 

Publicación traducida automáticamente

Artículo escrito por priyarajtt y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *