Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Índices para la optimización de query

En esta guía, puedes aprender a usar índices con el controlador Sync de Kotlin. Los índices pueden mejorar la eficiencia de las queries y agregar funcionalidad a la query y 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 tu query para devolver resultados directamente desde un índice, consulta 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 proporciona diversos tipos de índices para facilitar la consulta de datos. Puedes crear un índice llamando a la createIndex() método en una colección y pasando una definición de índice como argumento.

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

Nota

Los ejemplos en esta página utilizan las colecciones sample_mflix.movies y sample_mflix.theaters de los conjuntos de datos de muestra Atlas. Para aprender cómo crear una implementación gratuita de MongoDB y cargar conjuntos de datos de muestra, consulta Comienza con 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 saber más sobre los índices compuestos, consulta Índices Compuestos en el manual del MongoDB Server.

El siguiente ejemplo crea un índice de varias claves en el campo especificado que tiene valores de arreglo:

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

Para saber más sobre los índices multiclave, consulta Índices multiclave en el manual del MongoDB Server.

El siguiente ejemplo crea una nueva colección con un "/índice clustered/" 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 con índice clusterizado e índices, consulta Colecciones con índice clusterizado en el manual del MongoDB Server.

El siguiente ejemplo crea un índice de texto en el campo de string 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, consulta Índices geoespaciales en el manual del servidor de MongoDB.

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, consulta Índices comodín en el manual del servidor MongoDB.

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