Introducción a MongoDB create Index

MongoDB es utilizado por algoritmos complejos de minería de datos y análisis de datos para administrar, modificar y organizar los datos en los que trabajan. Los datos que manejan son enormes y requieren un manejo eficiente. Los índices en DBMS ayudan a aumentar el rendimiento de consultas como buscar y actualizar datos. Imagine una colección que tiene cientos de documentos. Para encontrar documentos que coincidan con un filtro en particular, MongoDB tendría que comparar el filtro con todos los documentos que están presentes en la colección, lo cual es tedioso y requiere mucho tiempo. En lugar de indexar documentos (campos), se reducirá significativamente el tiempo de búsqueda. En este tema, vamos a aprender sobre MongoDB create Index.

Los índices son estructuras de datos que se empaquetan con un conjunto de datos parcial dentro de sí mismo. El índice almacena el valor de un campo en particular en los documentos de manera ordenada que admite operaciones como comparadores, ecuadores y consultas basadas en rangos en orden secuencial.

La sintaxis básica para crear índice

db.collectionName.createIndex(, )

LlavesKeys es un documento que contiene un par de valores de campo donde el campo es la clave de índice y el valor es el tipo de índice.

Por ejemplo, el valor es 1 para ordenar la clave de índice en orden ascendente y -1 en orden descendente

OpcionesOpción (es) es un documento que contiene un conjunto de opciones que influyen en la creación de índices. Estas opciones son opcionales.

Tipos de índices

Estos son los tipos de índices que se mencionan a continuación.

1. Identificación predeterminada

Cada documento presente en la colección Mongo contiene un índice

predeterminado llamado "_id". Se crea una identificación de objeto al crear el documento si no hay valores de índice presentes.

2. Campo único

La indexación se realiza en un solo campo y la operación de clasificación es ascendente o descendente, ya que MongoDB puede atravesar en cualquier dirección.

Ejemplo: db.collection.createIndex (("edad": 1))

3. Índice compuesto

MongoDB admite índices definidos por el usuario en múltiples campos. El orden de los campos dados en el índice compuesto es bastante significativo. El orden de clasificación toma de izquierda a derecha, la prioridad wrt para el primer campo mencionado en los índices compuestos es mayor que la del siguiente.

Ejemplo: db.collection.createIndex (("edad": 1, "dim.h": - 1)). En este ejemplo, todos los documentos con campo de edad se ordenan primero en orden ascendente y luego en orden descendente de altura en dim.

4. Índice Multikey

MongoDB usa el índice Multikey para indexar datos que están en formato de matriz. Durante la indexación, cada elemento de la matriz se crea un índice separado y los datos se indexan en función de los elementos presentes en la matriz. MongoDB se encarga de que el campo de índice tenga una matriz por defecto.

5. Índice geoespacial

MongoDB utiliza la indexación geoespacial para buscar datos en función de su ubicación. Admite dos tipos de búsqueda, 2D (bidimensional) y 3D (tridimensional). Estos índices se utilizan para obtener resultados dentro de un rango. El número de resultados de búsqueda también se puede limitar mediante el uso de la función limit ().

Ejemplo: db.players.find ((loc: ($ near: ($ geometry: (type: "high_school", sport: "basketball" age: (14, 17)))))). Este ejemplo encontrará todas las entradas de estudiantes que están en high_school, juegan baloncesto y están dentro del rango de edad de 14 a 17.

6. Índice de texto

MongoDB proporciona indexación de texto para admitir consultas en formato de cadena. El índice de texto puede tener cualquier campo que consista en elementos de cadena o una matriz de elementos de cadena.
Ejemplo: db.movies.find (($ text: ($ search: "tom hardy"))). Este ejemplo encontrará todos los documentos que tienen nombres de actores como tom hanks, tom felton, tom hiddelson y robert hardy y John Hardy. MongoDB toma la cadena provista para la búsqueda y proporciona todos los documentos que tienen una cadena de búsqueda completa o parcial.

7. Índice hash

MongoDB utiliza un índice hash para admitir el fragmentación. Los índices hash calculan el valor hash de los campos de índice utilizando una función hash. No es compatible con la indexación de múltiples claves (valores de matriz). Los índices hash se crean utilizando la función createIndex y el valor del campo índice siempre debe ser 'hash'.

Ejemplo: db.collection.createIndex ((: "hashed")) . Para encontrar los documentos con valores hash, db.collection.find ((: Math.pow (2, 63))) devolverá todos los documentos con índices hash en el rango 2 63.

Opciones para indexar

1. Índice único

Como su nombre indica, los índices únicos son únicos en naturaleza. MongoDB no permite valores duplicados si se crea un índice utilizando la opción "única". Para especificar que un índice es único mientras se crea el índice, se debe utilizar el siguiente formato.

db.collection.createIndex (, (unique: true)) . Las restricciones únicas se pueden imponer también en el índice compuesto, índice multiciclo e índice de texto.

2. Índice parcial

Los índices parciales indexan documentos de una colección en función de un filtro o expresión específicos. Dado que los índices parciales indexan, solo un subgrupo de los requisitos de espacio de recolección (memoria) son menores y esto también resulta en un rendimiento reducido.

Ejemplo :

db.pupils.createIndex ((nombre: 1), (partialFilterExpression: (edad: ($ gt: 5)))
Filtrar expresiones compatibles:

  • $ gt, $ gte, $ lt, $ lte (mayor que, mayor que o igual, menor que y menor que o igual)
  • operadores tipo $
  • $ existe: operación verdadera
  • Operador de igualdad ($ eq)
  • Lógica y, u operaciones

3. índice TTL

TTL indexa un tipo especial de índices de clave única que se pueden eliminar de la colección MongoDB después de un tiempo de espera o a una hora específica del reloj. servicial.

Ejemplo:

db.log.createIndex (("lastModifiedDate": 1), (expireAfterSeconds: 10000))

4. Índice escaso

Los índices dispersos indexan solo los documentos que contienen el valor de campo del índice. Ignora todos los demás documentos que no contienen el campo. Por defecto, los índices no dispersos contienen todos los documentos en las colecciones, con un valor nulo como el valor para aquellos campos que no están presentes.

Ejemplo:

db.pupil.createIndex (("age": 1), (sparse: true))
El índice no indexa documentos que no contienen la edad del campo.

5. Índice de mayúsculas y minúsculas

Los índices insensibles a mayúsculas y minúsculas se utilizan para admitir consultas que ejecutan comparaciones de cadenas sin ningún tipo de distinción entre mayúsculas y minúsculas.

Ejemplo:

db.collection.createIndex (("clave": 1), (intercalación:))

Colación:

El documento de clasificación se utiliza para especificar reglas de idioma, mayúsculas, etc. para la comparación de cadenas.

Los documentos de clasificación consisten en lo siguiente:

Conclusión - MongoDB create Index

En conclusión, la indexación es crucial para una ejecución más rápida de consultas y gestión de memoria. Los índices pueden crearse, modificarse de acuerdo con los requisitos de los usuarios y eliminarse cuando no sea necesario.

Artículos recomendados

Esta es una guía para MongoDB crear índice. Aquí discutimos los tipos de índices y opciones para indexar junto con los ejemplos. También puede consultar el siguiente artículo para obtener más información:

  1. Herramientas MongoDB
  2. ¿Qué es MongoDB?
  3. Replicación en MongoDB
  4. Ventajas de MongoDB