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:

db.users.createIndex({ "username": 1 }, { unique: true })

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:

db.orders.createIndex({ "customer_id": 1, "order_date": -1 })

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:

db.articles.createIndex({ "content": "text" })

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:

db.places.createIndex({ "location": "2dsphere" })

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:

db.users.createIndex({ "user_id": "hashed" })

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:

db.sessions.createIndex(
  { "createdAt": 1 },
  { expireAfterSeconds: 3600 }
)

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.

© Copyright 2024. Todos los derechos reservados