Overview
En esta guía, puedes aprender a especificar Índices usando
desarrolladores en el driver de MongoDB Java. La Indexes builder 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 un conjunto de campos, ordenados por el valor del campo. Consulta nuestra guía sobre índices para ejemplos de queries 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 un BSON instancia, que puedes pasar a createIndex().
Tip
Para mayor brevedad, puedes elegir importar todos los métodos de la clase Índices 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 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:
Bson ascendingIndex = ascending("name"); collection.createIndex(ascendingIndex);
Í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 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:
Bson descendingIndex = descending("capacity"); collection.createIndex(descendingIndex);
Índices compuestos
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:
Bson compoundIndexExample = compoundIndex(descending("capacity", "year"), ascending("name")); collection.createIndex(compoundIndexExample);
Text Indexes
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 "teatros":
Bson textIndex = text("theaters"); collection.createIndex(textIndex);
Índices encriptados
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:
Bson hashedIndex = hashed("capacity"); collection.createIndex(hashedIndex);
Í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 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:
Bson geo2dsphereIndex = geo2dsphere("location"); collection.createIndex(geo2dsphereIndex);