Docs Menu
Docs Home
/ /

Índices para la optimización de consultas

En esta guía, aprenderá a usar índices con el controlador Kotlin Sync. Los índices pueden mejorar la eficiencia de las consultas y añadir funcionalidad a la consulta y el almacenamiento de documentos.

Sin índices, MongoDB debe escanear todos los documentos de una colección para encontrar los que coinciden con cada consulta. Estos escaneos de colecciones son lentos y pueden afectar negativamente el rendimiento de la aplicación. Sin embargo, si existe un índice adecuado para una consulta, MongoDB puede usarlo para limitar los documentos que debe inspeccionar.

Para conocer los criterios que debe cumplir su consulta para devolver resultados directamente desde un índice, consulte la Sección de consultas cubiertas en el manual del servidor MongoDB.

Para mejorar el rendimiento de las consultas, cree índices en los campos que aparecen con frecuencia en las consultas y operaciones de su aplicación que devuelven resultados ordenados. Cada índice que agregue consume espacio en disco y memoria cuando está activo, por lo que podría ser necesario realizar un seguimiento del uso de memoria y disco del índice para planificar la capacidad. Además, cuando una operación de escritura actualiza un campo indexado, MongoDB también actualiza el índice relacionado.

Dado que MongoDB admite esquemas dinámicos, las aplicaciones pueden realizar consultas en campos cuyos nombres no se conocen de antemano o son arbitrarios. Losíndices comodín facilitan estas consultas, pero no están diseñados para reemplazar la planificación de índices basada en la carga de trabajo.

Para obtener más información sobre cómo diseñar su modelo de datos y elegir índices apropiados para su aplicación, consulte la documentación del servidor sobre Estrategias de indexación y Creación de índices para respaldar sus consultas.

MongoDB ofrece varios tipos de índices diferentes para facilitar la consulta de datos. Puede crear un índice llamando a createIndex() método en una colección y pasando una definición de índice como argumento.

Las siguientes secciones describen los tipos de índice más comunes y proporcionan código de muestra para crear cada tipo de índice.

Nota

Los ejemplos de esta página utilizan las colecciones y de los sample_mflix.movies sample_mflix.theaters conjuntos de datos de muestra de Atlas. Para aprender a crear una implementación gratuita de MongoDB y cargar los conjuntos de datos de muestra, consulte Comience a utilizar el controlador de sincronización de Kotlin.

Para obtener más información sobre los diferentes tipos de índice, consulte Tipos de índice en el manual de MongoDB Server.

El siguiente ejemplo crea un índice ascendente en el campo especificado:

collection.createIndex(Indexes.ascending("<field name>"))

Para aprender más sobre los índices de campo único, consulta Índices de campo único en el manual de MongoDB Server.

El siguiente ejemplo crea un índice compuesto en los campos especificados:

collection.createIndex(Indexes.ascending("<field name 1>", "<field name 2>"))

Para obtener más información sobre los índices compuestos, consulte Índices compuestos en el manual de MongoDB Server.

El siguiente ejemplo crea un índice multiclave en el campo con valor de matriz especificado:

collection.createIndex(Indexes.ascending("<array field name>"))

Para obtener más información sobre los índices de claves múltiples, consulte Índices de claves múltiples en el manual de MongoDB Server.

El siguiente ejemplo crea una nueva colección con un índice agrupado en el campo _id:

val clusteredIndexOptions = ClusteredIndexOptions(
Indexes.ascending("_id"),
true
)
val collection = database.createCollection("<collection name>", clusteredIndexOptions)

Para obtener más información sobre colecciones e índices agrupados, consulte Colecciones agrupadas en el manual de MongoDB Server.

El siguiente ejemplo crea un índice de texto en el campo de cadena especificado:

collection.createIndex(Indexes.text("<field name>"))

El siguiente ejemplo crea un índice 2dsphere en el campo especificado que contiene objetos GeoJSON:

collection.createIndex(Indexes.geo2dsphere("<GeoJSON object field>"))

Para obtener más información sobre los índices geoespaciales, consulte Índices geoespaciales en el manual de MongoDB Server.

El siguiente ejemplo crea un índice único en el campo especificado:

val indexOptions = IndexOptions().unique(true)
collection.createIndex(Indexes.ascending("<field name>"), indexOptions)

Para obtener más información sobre índices únicos, consulte Índices únicos en el manual de MongoDB Server.

El siguiente ejemplo crea un índice comodín en la colección especificada:

collection.createIndex(Indexes.ascending("$**"))

Para obtener más información sobre los índices comodín, consulte Índices comodín en el manual de MongoDB Server.

Puedes borrar índices utilizando el método dropIndex() en una colección, como se muestra en el siguiente ejemplo:

collection.dropIndex("<index name>")

Volver

JSON extendido

En esta página