⚙️ Tipos de índices: simples, compuestos y texto

Tipos de índices en MongoDB

⚙️ Tipos de índices: simples, compuestos y texto

En MongoDB existen varios tipos de índices que permiten optimizar las consultas según el tipo de datos y operaciones que realizamos. Conocerlos te ayuda a mejorar el rendimiento de tu base de datos.


🔹 1️⃣ Índice simple

Es el índice más básico y se crea sobre un solo campo. Ideal para consultas simples como filtrar por nombre de producto:

db.productos.createIndex({ nombre: 1 })

1 indica orden ascendente; -1 sería descendente.


🔹 2️⃣ Índice compuesto

Permite crear un índice sobre varios campos, optimizando consultas que filtran o ordenan por más de un campo.

db.productos.createIndex({ categoria: 1, precio: -1 })

MongoDB usará este índice cuando busques productos por categoría y quieras ordenarlos por precio de forma descendente.


🔹 3️⃣ Índice de texto

Permite realizar búsquedas de texto completo en campos que contienen cadenas de caracteres. Ideal para buscadores dentro de aplicaciones.

// Crear índice de texto en los campos nombre y descripción
db.productos.createIndex({ nombre: "text", descripcion: "text" })

Con este índice podemos buscar palabras clave en ambos campos:

db.productos.find({ $text: { $search: "teclado mecánico" } })

🧠 4️⃣ Buenas prácticas

  • Usa índices simples para campos que se consultan individualmente.
  • Usa índices compuestos para consultas frecuentes que combinan varios campos.
  • Evita crear demasiados índices, ya que afectan el rendimiento de inserciones y actualizaciones.
  • Los índices de texto son útiles para buscadores, pero consumen más recursos que un índice simple.
  • Revisa los índices con db.collection.getIndexes() y elimina los innecesarios con dropIndex().

🧭 5️⃣ Resumen rápido

  • Índice simple: un campo, consultas rápidas.
  • Índice compuesto: varios campos, optimiza consultas combinadas.
  • Índice de texto: búsqueda de palabras clave en campos de texto.
  • Planifica los índices según las consultas más frecuentes y el rendimiento.

Publicar un comentario

0 Comentarios