Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Menu Docs
Página inicial do Docs
/ / /
Driver de Kotlin Sync

Índices para otimização de queries

Neste guia, você pode aprender como usar índices com o driver Kotlin Sync. Os índices podem melhorar a eficiência das queries e adicionar funcionalidade à consulta e ao armazenamento de documentos.

Sem índices, o MongoDB deve digitalizar todos os documentos em uma collection para encontrar os documentos que correspondem a cada query. Essas verificações da collection são lentas e podem afetar negativamente o desempenho do seu aplicativo. No entanto, se existir um índice apropriado para uma query, o MongoDB poderá usar o índice para limitar os documentos que deve inspecionar.

Para saber mais sobre os critérios que sua query deve atender para retornar resultados diretamente de um índice, consulte a seçãoquery coberta no manual do MongoDB Server .

Para melhorar o desempenho da query, crie índices em campos que aparecem com frequência nas queries e operações do seu aplicativo que retornam resultados ordenados. Cada índice adicionado consome espaço em disco e memória quando ativo, portanto, pode ser necessário rastrear a memória do índice e o uso do disco para o planejamento da capacidade. Além disso, quando uma operação de gravação atualiza um campo indexado, MongoDB também atualiza o índice relacionado.

Como o MongoDB oferece suporte a esquemas dinâmicos, os aplicativos podem executar consulta dos campos cujos nomes não podem ser conhecidos antecipadamente ou são arbitrários. Os índices curinga ajudam a suportar essas queries, mas não são projetados para substituir o planejamento de índice baseado em volume de trabalho.

Para obter mais informações sobre como projetar o modelo de dados e escolher os índices apropriados para o seu aplicação, consulte a documentação do servidor sobre Estratégias de indexação e Modelagem de dados e índices.

O MongoDB fornece vários tipos de índice diferentes para auxiliar na consulta de seus dados. Você pode criar um índice chamando o método createIndex() em uma collection e passando uma definição de índice como um argumento.

As seções a seguir descrevem os tipos de índice mais comuns e fornecem código de amostra para criar cada tipo de índice.

Observação

Os exemplos nesta página utilizam as sample_mflix.movies sample_mflix.theaters collections e dos conjuntos de dados de amostra do Atlas . Para saber como criar um cluster MongoDB Atlas gratuito e carregar os conjuntos de dados de exemplo, consulte Introdução ao Driver Kotlin Sync.

Para saber mais sobre os diferentes tipos de índice, consulte Tipos de índice no manual do MongoDB Server .

O exemplo seguinte cria um índice ascendente no campo especificado:

collection.createIndex(Indexes.ascending("<field name>"))

Para saber mais sobre índices de campo único, consulte Índices de campo único no manual do MongoDB Server .

O exemplo seguinte cria um índice composto nos campos especificados:

collection.createIndex(Indexes.ascending("<field name 1>", "<field name 2>"))

Para saber mais sobre índices compostos, consulte Índices compostos no manual do MongoDB Server .

O exemplo a seguir cria um índice de múltiplas chaves no campo com valor de array especificado:

collection.createIndex(Indexes.ascending("<array field name>"))

Para saber mais sobre índices de várias chaves, consulte Índices de várias chaves no manual do MongoDB Server .

O exemplo seguinte cria uma nova coleção com um índice agrupado no campo _id :

val clusteredIndexOptions = ClusteredIndexOptions(
Indexes.ascending("_id"),
true
)
val collection = database.createCollection("<collection name>", clusteredIndexOptions)

Para saber mais sobre coleções e índices agrupados, consulte Coleções agrupadas no manual do MongoDB Server .

O exemplo seguinte cria um índice de texto no campo de string especificado:

collection.createIndex(Indexes.text("<field name>"))

O exemplo seguinte cria um índice 2dsphere no campo especificado que contém objetos GeoJSON:

collection.createIndex(Indexes.geo2dsphere("<GeoJSON object field>"))

Para saber mais sobre índices geoespaciais, consulte Índices geoespaciais no manual do MongoDB Server .

O exemplo seguinte cria um índice único no campo especificado:

val indexOptions = IndexOptions().unique(true)
collection.createIndex(Indexes.ascending("<field name>"), indexOptions)

Para saber mais sobre índices únicos, consulte Índices únicos no manual do MongoDB Server .

O exemplo seguinte cria um índice curinga na coleção especificada:

collection.createIndex(Indexes.ascending("$**"))

Para saber mais sobre índices curinga, consulte Índices curinga no manual do MongoDB Server .

Você pode excluir índices utilizando o método dropIndex() em uma coleção, como mostrado no seguinte exemplo:

collection.dropIndex("<index name>")

Voltar

Extended JSON

Nesta página