Visão geral
Neste guia, você pode aprender como especificar índices usando construtores no driver Java Reactive Streams. O construtor Indexes fornece métodos assistente para construir os seguintes tipos de índices:
Os índices armazenam um subconjunto do conjunto de dados da coleção. O índice armazena o valor de um campo específico ou conjunto de campos, ordenado pelo valor do campo.
A classe Indexes fornece métodos de fábrica estáticos para todos os tipos de índice do MongoDB . Cada método retorna uma instância BSON, que você pode passar para createIndex().
Dica
Para maior brevidade, você pode optar por importar todos os métodos da classe Índices estaticamente:
import static com.mongodb.client.model.Indexes.*;
Os exemplos a seguir pressupõem essa importação estática.
Índices crescentes
Um índice ascendente permite classificar os resultados da query pelo valor dos campos indexados, do menor para o maior.
In order to create an ascending index, first call the ascending() builder method to create a Bson instance that represents the index document, passing the name or names of the fields you want to index. Then, call the createIndex() method on the collection, passing the Bson instance that contains the index document.
Observação
Se você tiver um índice ascendente ou descendente em um único campo, o MongoDB poderá classificar usando o índice em qualquer direção.
O exemplo seguinte especifica um índice ascendente no campo name :
Bson ascendingIndex = ascending("name"); Publisher<String> result = collection.createIndex(ascendingIndex); Mono.from(result).block();
Índices decrescentes
Um índice decrescente permite classificar os resultados da query pelo valor dos campos indexados do maior para o menor.
In order to create a descending index, first call the descending() builder method to create a Bson instance that represents the index document, passing the name or names of the fields you want to index. Then, call the createIndex() method on the collection, passing the Bson instance that contains the index document.
O exemplo a seguir especifica um índice decrescente no campo capacity:
Bson descendingIndex = descending("capacity"); Publisher<String> result = collection.createIndex(descendingIndex); Mono.from(result).block();
Índices compostos
Para criar um índice composto, primeiro chame o método construtor compoundIndex() para criar uma Bson instância que representa o documento de índice , passando os nomes dos campos que você deseja indexar. Em seguida, chame o createIndex() método na collection, passando a Bson instância que contém o documento de índice.
O exemplo seguinte especifica um índice composto composto de índice descendente no campo capacity e year , seguido por um índice ascendente no campo name :
Bson compoundIndex = compoundIndex(descending("capacity", "year"), ascending("name")); Publisher<String> result = collection.createIndex(compoundIndex); Mono.from(result).block();
Text Indexes
Um índice de texto agrupa documentos pelo texto no campo indexado.
In order to create a text index, first call the text() builder method to create a Bson instance that represents the index document, passing the name of the fields you want to index. Then, call the createIndex() method on the collection, passing the Bson instance that contains the index document.
O exemplo a seguir especifica uma chave de índice de texto no campo "threads":
Bson textIndex = text("theaters"); Publisher<String> result = collection.createIndex(textIndex); Mono.from(result).block();
Índices com hash
Um índice hash agrupa documentos pelo valor de hash no campo indexado.
Para criar um índice hashed, primeiro chame o método construtor hashed() para criar uma Bson instância que represente o documento de índice, passando o nome dos campos que você deseja indexar. Em seguida, chame o createIndex() método na collection, passando a Bson instância que contém o documento de índice.
O exemplo seguinte especifica um índice hash no campo capacity :
Bson hashedIndex = hashed("capacity"); Publisher<String> result = collection.createIndex(hashedIndex); Mono.from(result).block();
Índices geoespaciais
Um índice 2dsphere agrupa documentos pelas coordenadas no campo indexado.
Para criar um 2dsphere índice, primeiro chame o método construtor geo2dsphere() para criar uma Bson instância que represente o documento de índice, passando o nome ou os nomes dos campos que você deseja indexar. Em seguida, chame o createIndex() método na coleção, passando a Bson instância que contém o documento de índice.
O seguinte exemplo especifica um índice 2dsphere no campo location :
Bson geo2dsphereIndex = geo2dsphere("location"); Publisher<String> result = collection.createIndex(geo2dsphereIndex); Mono.from(result).block();