En MongoDB, los índices son estructuras especiales que almacenan una pequeña porción de los datos de la colección en una forma fácil de recorrer. Los índices mejoran la eficiencia de las operaciones de búsqueda y consulta. En esta sección, exploraremos los diferentes tipos de índices que MongoDB ofrece y cómo utilizarlos.
Índice Único
Un índice único asegura que los valores indexados sean únicos en la colección. Esto es útil para campos que deben tener valores únicos, como nombres de usuario o correos electrónicos.
Ejemplo:
En este ejemplo, estamos creando un índice único en el campo username
de la colección users
.
Índice Compuesto
Un índice compuesto es un índice en múltiples campos. Es útil para consultas que filtran por más de un campo.
Ejemplo:
Aquí, estamos creando un índice compuesto en los campos customer_id
y order_date
de la colección orders
. El 1
indica orden ascendente y el -1
indica orden descendente.
Índice de Texto
Los índices de texto son utilizados para búsquedas de texto. Permiten realizar búsquedas de texto completo en los campos indexados.
Ejemplo:
En este ejemplo, estamos creando un índice de texto en el campo content
de la colección articles
.
Índice Geoespacial
Los índices geoespaciales permiten realizar consultas geoespaciales, como encontrar documentos cerca de una ubicación específica.
Ejemplo:
Aquí, estamos creando un índice geoespacial en el campo location
de la colección places
.
Índice de Hash
Los índices de hash son útiles para la igualdad de consultas. MongoDB calcula un hash para el valor del campo y lo indexa.
Ejemplo:
En este ejemplo, estamos creando un índice de hash en el campo user_id
de la colección users
.
Índice Parcial
Un índice parcial indexa solo los documentos que cumplen con una condición específica. Esto puede reducir el tamaño del índice y mejorar el rendimiento.
Ejemplo:
db.orders.createIndex( { "order_date": 1 }, { partialFilterExpression: { "status": { $eq: "shipped" } } } )
Aquí, estamos creando un índice en el campo order_date
de la colección orders
, pero solo para los documentos donde el campo status
es igual a "shipped".
Índice TTL (Time-To-Live)
Un índice TTL permite que los documentos se eliminen automáticamente después de un período de tiempo especificado.
Ejemplo:
En este ejemplo, estamos creando un índice TTL en el campo createdAt
de la colección sessions
, y los documentos se eliminarán automáticamente una hora (3600 segundos) después de su creación.
Resumen
En esta sección, hemos cubierto los diferentes tipos de índices en MongoDB:
- Índice Único
- Índice Compuesto
- Índice de Texto
- Índice Geoespacial
- Índice de Hash
- Índice Parcial
- Índice TTL
Cada tipo de índice tiene su propio uso y ventajas. La elección del índice adecuado puede mejorar significativamente el rendimiento de las consultas en tu base de datos MongoDB. En la siguiente sección, exploraremos el marco de agregación en MongoDB, que es una herramienta poderosa para realizar consultas y transformaciones complejas en los datos.
Curso de MongoDB
Módulo 1: Introducción a MongoDB
Módulo 2: Operaciones CRUD en MongoDB
Módulo 3: Modelado de Datos en MongoDB
Módulo 4: Indexación y Agregación
Módulo 5: Características Avanzadas de MongoDB
Módulo 6: Rendimiento y Seguridad
- Optimización del Rendimiento
- Respaldo y Restauración
- Mejores Prácticas de Seguridad
- Monitoreo y Alertas