Con la función de MongoDB create index puedes generar un índice, creando así una mejor visión de conjunto y fa­ci­li­ta­n­do la respuesta a las consultas. Puedes pe­r­so­na­li­zar aún más el índice con varios pa­rá­me­tros.

¿Qué es en MongoDB create index?

Para entender para qué se utiliza create index en MongoDB y por qué la función es tan im­po­r­ta­n­te para el trabajo diario con el sistema de gestión de bases de datos, merece la pena echar un vistazo a la es­tru­c­tu­ra de MongoDB: di­fe­re­n­cia de los sistemas re­la­cio­na­les como MySQL, la solución NoSQL no se basa en tablas. Los do­cu­me­n­tos se almacenan en co­le­c­cio­nes y, por tanto, no tienen que seguir un esquema, son es­ca­la­bles y muy flexibles. De este modo, se pueden crear enormes bases de datos, crear co­le­c­cio­nes y añadir do­cu­me­n­tos. Sin embargo, si envías una solicitud para localizar de­te­r­mi­na­dos datos o registros de datos, necesitas seguir un orden que se consigue mediante índices.

Un índice no solo crea más orden en una base de datos, sino que también facilita al sistema el pro­ce­sa­mie­n­to de las consultas de búsqueda. De lo contrario, en una enorme colección de muchos miles de do­cu­me­n­tos, se producen tiempos de espera largos y re­su­l­ta­dos confusos. Si, por el contrario, creas índices para los do­cu­me­n­tos, estarán mejor ordenados y se podrán encontrar más rá­pi­da­me­n­te. Como el sistema solo tiene que leer una parte de los do­cu­me­n­tos, la búsqueda es mucho más eficaz. Para este proceso, usa el comando de MongoDB create index.

La sintaxis de MongoDB create index

La escritura de MongoDB create index se compone del nombre de la colección, el comando real, el criterio para las consultas de búsqueda y una dirección de conteo:

>db.NOMBRE_DE_LA_COLECCIÓN.createIndex ( {CLAVE:1} )

“NOMBRE_DE_LA_COLECCIÓN” designa el nombre de la colección en la que se va a crear el índice. "crea­teI­n­dex" es el comando co­rre­s­po­n­die­n­te, “CLAVE” designa el campo dentro de la colección y el "1" indica que la or­de­na­ción debe hacerse en orden as­ce­n­de­n­te. Para el sentido contrario, se­le­c­cio­ne "-1".

MongoDB create index: ejemplo de uso

Para entender mejor la fu­n­cio­na­li­dad y la utilidad de create index, uti­li­za­mos un ejemplo sencillo:

>db.ejemplo.createIndex ( {"title":1} )

El resultado es el siguiente:

{
"createdCollectionAutomatically" : false,
"numIndexesBefore" : 1,
"numIndexesAfter": 2,
"ok" : 1
}

La primera línea indica que la colección fue creada ma­nua­l­me­n­te con MongoDB create co­lle­c­tion. La segunda línea muestra cuántos índices hay antes de que se ejecute el comando. La tercera línea muestra el número de índices después del comando, y la cuarta línea indica el éxito de la operación.

Opciones para las funciones de MongoDB create index

Para optimizar la función de creación de índices, puedes utilizar varias opciones adi­cio­na­les en MongoDB, que se es­cri­bi­rán dentro de los pa­ré­n­te­sis, después de las llaves. Existen las si­guie­n­tes opciones:

  • ba­c­k­grou­nd: este parámetro crea el índice en segundo plano y así evita que el proceso de creación in­te­r­fie­ra con otras ac­ti­vi­da­des de la base de datos. Esta opción siempre contiene un valor booleano, por lo que es “false” o “true”. El valor por defecto es “false”.
  • unique: “unique” también es un valor booleano. Si es “true”, se crea un índice único mediante create index, que no incluye ningún documento cuyo valor clave ya esté en uso. De este modo, cada valor de la clave sólo aparece una vez. El valor de unique por defecto también es “false”.
  • name: con esta opción puedes dar a tu índice el nombre deseado. Si omites este parámetro, el sistema genera un nombre au­to­má­ti­ca­me­n­te.
  • sparse: si es­ta­ble­ces este valor como “true”, el índice solo co­n­si­de­ra­rá los do­cu­me­n­tos con un campo cla­ra­me­n­te definido. Este método ahorra espacio, pero también puede ser inexacto. El valor por defecto es “false”.
  • ex­pi­reA­f­te­r­Se­co­n­ds: con esta opción decides cuánto tiempo mantiene MongoDB los do­cu­me­n­tos en una colección. El valor se da en segundos.
  • weights: este parámetro determina la im­po­r­ta­n­cia de un campo en co­m­pa­ra­ción con otros campos de un índice. El valor va de 1 a 99 999.
  • default_language: si quieres utilizar un idioma distinto del inglés para el comando de MongoDB create index, puedes es­pe­ci­fi­car­lo con “default_language”.
  • language_override: con esta opción anulas el idioma por defecto.

Eliminar índices con MongoDB drop index

Ahora que sabes cómo crear un nuevo índice con create index, la única pregunta que queda es cómo eliminar dicho índice. Para este caso puedes recurrir a la función de MongoDB drop index y tienes dos opciones: o bien es­pe­ci­fi­cas el archivo del que quieres eliminar el índice o di­re­c­ta­me­n­te el nombre del índice co­rre­s­po­n­die­n­te.

Esta es la sintaxis del primer método:

>db.NOMBRE_DE_LA_COLECCIÓN.dropIndex ( {CLAVE:1} )

La sintaxis del segundo método es la siguiente:

dropIndex ("Nombre_del_índice")
Ir al menú principal