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 desarrolladores

En esta guía, puedes aprender a especificar Índices usando constructores en el controlador Kotlin de MongoDB. El Indexes builder ofrece métodos asistentes para construir los siguientes tipos de índices:

  • Índices ascendentes

  • Índices descendentes

  • Índices compuestos

  • Text Indexes

  • Índices encriptados

  • Índices geoespaciales

Los índices almacenan un subconjunto del conjunto de datos de la colección. El índice almacena el valor de un campo específico o conjunto de campos, ordenado según el valor del campo. Consulta nuestra guía sobre Índices para ejemplos de consultas cubiertas por índices.

La clase Indexes proporciona métodos de fábrica estáticos para todos los tipos de índices de MongoDB. Cada método devuelve una instancia de BSON, que puedes pasar a createIndex().

Tip

Por brevedad, puedes optar por importar todos los métodos de la clase Índices:

import com.mongodb.client.model.Indexes.*

Tip

Métodos de construcción y propiedades de la clase de datos

Puedes utilizar los métodos de las clases builder directamente con las propiedades de la data class añadiendo la dependencia opcional de extensiones del driver de Kotlin a tu aplicación. Para obtener más información y ver ejemplos, consulta la guía Utilizar desarrolladores con clases de datos.

Un índice ascendente te permite ordenar los resultados de la query por el valor de los campos indexados de menor a mayor.

Para crear un índice ascendente, primero llama al método builder ascendente() para crear una instancia de Bson que represente el documento de índice, pasando el nombre o los nombres de los campos que deseas indexar. Luego, llama al método createIndex() de la colección, pasando la instancia Bson que contiene el documento indexado.

Nota

Si tiene un índice ascendente o descendente en un solo campo, MongoDB puede ordenar usando el índice en cualquier dirección.

El siguiente ejemplo especifica un índice ascendente en el campo name:

val ascendingIndex = Indexes.ascending("name")
val indexName = collection.createIndex(ascendingIndex)
println(indexName)
name_1

Un índice descendente le permite ordenar los resultados de la query por el valor de los campos indexados de mayor a menor.

Para crear un índice descendente, primero llame al método de construcción descending() para crear una Bson instancia que represente el documento índice, pasando el nombre o los nombres de los campos que desea indexar. Luego, llame al createIndex() método en la colección, pasando la Bson instancia que contiene el documento índice.

El siguiente ejemplo especifica un índice descendente en el campo capacity:

val descendingIndex = Indexes.descending("capacity")
val indexName = collection.createIndex(descendingIndex)
println(indexName)
capacity_-1

Para crear un índice compuesto, primero llama al método constructor compoundIndex() para crear una instancia de Bson que representa el documento del índice, pasando los nombres de los campos que deseas indexar. Luego, llama al método createIndex() de la colección, pasando la instancia Bson que contiene el documento indexado.

El siguiente ejemplo especifica un índice compuesto formado por un índice descendente en el campo capacity y year, seguido de un índice ascendente en el campo name:

val compoundIndexExample = Indexes.compoundIndex(
Indexes.descending("capacity", "year"),
Indexes.ascending("name")
)
val indexName = collection.createIndex(compoundIndexExample)
println(indexName)
capacity_-1_year_-1_name_1

Un índice de texto agrupa documentos según el texto en el campo indexado.

Para crear un índice de texto, primero llama al método builder text() para crear una instancia de Bson que represente el documento indexado, pasando el nombre de los campos que deseas indexar. Luego, llama al método createIndex() en la colección, pasando la instancia Bson que contiene el documento indexado.

El siguiente ejemplo especifica una clave de índice de texto en el campo theaters:

val textIndex = Indexes.text("theaters")
val indexName = collection.createIndex(textIndex)
println(indexName)
theaters_text

Un índice encriptada agrupa los documentos por el valor de hash en el campo indizado.

Para crear un índice encriptada, primero llama al método generador hashed() para crear una instancia de Bson que represente el documento índice, pasando el nombre de los campos que deseas indexar. Luego, llama al método createIndex() en la colección, pasando la instancia Bson que contiene el documento indexado.

El siguiente ejemplo especifica un índice hash en el campo capacity:

val hashedIndex = Indexes.hashed("capacity")
val indexName = collection.createIndex(hashedIndex)
println(indexName)
capacity_hashed

Un índice 2dsphere agrupa documentos según las coordenadas en el campo indexado.

Para crear un 2dsphere índice, primero llame al método de construcción geo2dsphere() para crear una Bson instancia que represente el documento de índice, pasando el nombre o los nombres de los campos que desea indexar. Luego, llame al createIndex() método en la colección, pasando la Bson instancia que contiene el documento de índice.

El siguiente ejemplo especifica un índice 2dsphere en el campo location:

val geo2dsphereIndex = Indexes.geo2dsphere("location")
val indexName = collection.createIndex(geo2dsphereIndex)
println(indexName)
location_2dsphere

Volver

Filtros

En esta página