Overview
En esta guía, puede aprender a especificar índices utilizando
constructores en el controlador Kotlin de MongoDB. El Indexes El constructor proporciona métodos auxiliares para construir los siguientes tipos de índices:
Los índices almacenan un subconjunto del conjunto de datos de la colección. El índice almacena el valor de un campo o conjunto de campos específicos, ordenados según su valor. Consulte nuestra guía sobre índices para ver ejemplos de consultas cubiertas por índices.
La Indexes clase proporciona métodos de fábrica estáticos para todos los tipos de índice de MongoDB. Cada método devuelve una instancia de BSON, que se puede pasar a createIndex().
Tip
Tip
Métodos de construcción y propiedades de la clase de datos
Puedes usar los métodos de las clases de constructor directamente con las propiedades de las clases de datos añadiendo la dependencia opcional de extensiones del controlador Kotlin a tu aplicación. Para obtener más información y ver ejemplos, consulta la guía "Usar constructores con clases de datos".
Índices ascendentes
Un índice ascendente le permite ordenar los resultados de la consulta según el valor de los campos indexados, del más pequeño al más grande.
Para crear un índice ascendente, primero llame al método de construcción ascending() 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.
Nota
Si tiene un índice ascendente o descendente en un solo campo, MongoDB puede ordenar utilizando 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
Índices descendentes
Un índice descendente le permite ordenar los resultados de la consulta según el valor de los campos indexados, del más grande al más pequeño.
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
Índices compuestos
Para crear un índice compuesto, primero llame al método constructor compoundIndex() para crear una Bson instancia que represente el documento índice, pasando 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 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
Text Indexes
Un índice de texto agrupa documentos según el texto en el campo indexado.
Para crear un índice de texto, primero llame al método constructor text() para crear una Bson instancia que represente el documento índice, pasando el nombre 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 una clave de índice de texto en el campo theaters:
val textIndex = Indexes.text("theaters") val indexName = collection.createIndex(textIndex) println(indexName)
theaters_text
Índices encriptados
Un índice hash agrupa los documentos según el valor hash en el campo indexado.
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
Índices geoespaciales
Un índice 2dsphere agrupa los documentos por 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