Overview
En esta guía, puedes aprender a especificar índices utilizando desarrolladores en el driver Java Reactive Streams. El desarrollador Indexes ofrece métodos asistentes 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 específico o de un conjunto de campos, ordenados por el valor del campo.
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
Para mayor brevedad, puede optar por importar todos los métodos de la clase Indexes de forma estática:
import static com.mongodb.client.model.Indexes.*;
Los siguientes ejemplos asumen esta importación estática.
Índices ascendentes
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 llame al método builder ascending() para crear una instancia Bson que representa el documento indexado, pasando el nombre o los nombres de los campos que desea indexar. A continuación, llame al método createIndex() en 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:
Bson ascendingIndex = ascending("name"); Publisher<String> result = collection.createIndex(ascendingIndex); Mono.from(result).block();
Índices descendentes
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 desarrolladores descending() para crear una instancia Bson que represente el documento indexado, pasando el nombre o los nombres de los campos que desea indexar. A continuación, llame al método createIndex() en la colección, pasando la instancia Bson que contiene el documento indexado.
El siguiente ejemplo especifica un índice descendente en el campo capacity:
Bson descendingIndex = descending("capacity"); Publisher<String> result = collection.createIndex(descendingIndex); Mono.from(result).block();
Índices compuestos
Para crear un índice compuesto, primero llame al método constructor compoundIndex() para crear una Bson instancia que represente el documento de í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 de í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:
Bson compoundIndex = compoundIndex(descending("capacity", "year"), ascending("name")); Publisher<String> result = collection.createIndex(compoundIndex); Mono.from(result).block();
Text Indexes
Un índice de textos agrupa los documentos según el texto en el campo indexado.
Para crear un índice de texto, primero llame al método de desarrolladores text() para crear una instancia Bson que representa el documento indexado, pasando el nombre de los campos que desea indexar. A continuación, llame 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 "teatros":
Bson textIndex = text("theaters"); Publisher<String> result = collection.createIndex(textIndex); Mono.from(result).block();
Índices encriptados
Un índice encriptada agrupa los documentos por el valor de hash en el campo indizado.
Para crear un índice hash, primero llame al método constructor `hashed()` para crear una Bson instancia ` ` que represente el documento de í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 de índice.
El siguiente ejemplo especifica un índice encriptada en el campo capacity:
Bson hashedIndex = hashed("capacity"); Publisher<String> result = collection.createIndex(hashedIndex); Mono.from(result).block();
Índices geoespaciales
Un índice 2dsphere agrupa documentos según las coordenadas en el campo indexado.
Para crear un 2dsphere índice, primero llame al método constructor 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:
Bson geo2dsphereIndex = geo2dsphere("location"); Publisher<String> result = collection.createIndex(geo2dsphereIndex); Mono.from(result).block();