Menu Docs

Construtores de índices

Neste guia, você pode aprender como especificar índices usando construtores no MongoDB Kotlin Driver. O construtor Indexes fornece métodos auxiliares para construir os seguintes tipos de índices:

Os índices armazenam um subconjunto do conjunto de dados da collection. O índice armazena o valor de um campo específico ou conjunto de campos, ordenado pelo valor do campo. Consulte nosso guia sobre índices para obter exemplos de query cobertas por índices.

A classe Indexes fornece métodos de fábrica estáticos para todos os tipos de índice do MongoDB. Cada método retorna um BSON instância, que você pode passar para createIndex().

Dica

Por questões de brevidade, você pode optar por importar todos os métodos dos Índices classe:

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

Dica

Métodos de construtor e propriedades de classe de dados

Você pode usar os métodos de classes de construtores diretamente com propriedades de classe de dados adicionando a dependência opcional de extensões de driver Kotlin ao seu aplicação. Para saber mais e ver exemplos, consulte o guia Use Builders with Data Classes.

Um índice ascendente permite classificar os resultados da query pelo valor dos campos indexados, do menor para o maior.

Para criar um índice ascendente, primeiro chame o método ascendente() método construtor para criar uma Bson instância que representa o documento de índice, passando o nome ou nomes dos campos que você deseja indexar. Em seguida, chame o método createIndex() na coleção, passando a instância Bson que contém o documento de índice.

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 :

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

Um índice decrescente permite classificar os resultados da query pelo valor dos campos indexados do maior para o menor.

Para criar um índice descendente, primeiro chame o método descendente() método construtor para criar uma Bson instância que representa o documento de índice, passando o nome ou nomes dos campos que você deseja indexar. Em seguida, chame o método createIndex() na coleção, passando a instância Bson que contém o documento de índice.

O exemplo a seguir especifica um índice decrescente no campo capacity:

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

Para criar um índice composto, primeiro chame o método compoundIndex() método construtor 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 método createIndex() na coleção, passando a instância Bson 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 :

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

Um índice de texto agrupa documentos pelo texto no campo indexado.

Para criar um índice de texto, primeiro chame o método text() método construtor para criar uma Bson instância que representa o documento de índice, passando o nome dos campos que você deseja indexar. Em seguida, chame o método createIndex() na coleção, passando a instância Bson que contém o documento de índice.

O exemplo seguinte especifica uma chave de índice de texto no campo theaters :

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

Um índice hash agrupa documentos pelo valor de hash no campo indexado.

Para criar um índice hashed, primeiro chame o hashed() método construtor para criar uma Bson instância que representa o documento de índice, passando o nome dos campos que você deseja indexar. Em seguida, chame o método createIndex() na coleção, passando a instância Bson que contém o documento de índice.

O exemplo seguinte especifica um índice hash no campo capacity :

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

Um índice 2dsphere agrupa documentos pelas coordenadas no campo indexado.

Para criar um 2dsphere índice , primeiro chame o geo2dsphere() método construtor para criar uma Bson instância que representa o documento de índice, passando o nome ou nomes dos campos que você deseja indexar. Em seguida, chame o método createIndex() na coleção, passando a instância Bson que contém o documento de índice.

O seguinte exemplo especifica um índice 2dsphere no campo location :

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