Otimizar consultas usando índices
Nesta página
- Visão geral
- Aplicativo de amostra
- Índice de campo único
- Índice composto
- Multikey Index
- Índice Geoespacial
- índice único
- Índice curinga
- Índices clusterizados
- Gerenciamento do índice do Atlas Search
- Criar Índice de Atlas Search
- Listar índices de pesquisa
- Atualizar índices de pesquisa
- Excluir índices Atlas Search
- Text Index
- Excluir um índice.
Visão geral
Nesta página, você pode ver exemplos de código copiáveis que mostram como gerenciar diferentes tipos de índices usando o driver Kotlin Sync.
Dica
Para saber mais sobre como trabalhar com índices, consulte o guiaTrabalhar com índices . Para saber mais sobre qualquer um dos índices mostrados nesta página, consulte o link fornecido em cada seção.
Para usar um exemplo desta página, copie o exemplo de código para oaplicativo de amostra ou para seu próprio aplicativo. Certifique-se de substituir todos os espaços reservados nos exemplos de código, como <connection string URI>
, pelos valores relevantes para sua implantação do MongoDB.
Aplicativo de amostra
Você pode usar o seguinte aplicativo de exemplo para testar os exemplos de código nesta página. Para usar o aplicativo de amostra, execute as seguintes etapas:
Verifique se você tem o driver Kotlin Sync instalado em seu projeto Maven ou Gradle.
Copie o seguinte código e cole-o em um novo arquivo
.kt
.Copie um exemplo de código desta página e cole-o nas linhas especificadas no arquivo.
1 import com.mongodb.ConnectionString 2 import com.mongodb.MongoClientSettings 3 import com.mongodb.client.model.* 4 import com.mongodb.kotlin.client.* 5 import org.bson.Document 6 7 fun main() { 8 val uri = "<connection string URI>" 9 10 val settings = MongoClientSettings.builder() 11 .applyConnectionString(ConnectionString(uri)) 12 .retryWrites(true) 13 .build() 14 15 // Create a new client and connect to the server 16 val mongoClient = MongoClient.create(settings) 17 val database = mongoClient.getDatabase("<database name>") 18 val collection = database.getCollection<Document>("<collection name>") 19 20 // Start example code here 21 22 // End example code here 23 }
Índice de campo único
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 o guia Índices de campo único .
Índice composto
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 o guia Índices compostos .
Multikey Index
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>"))
Índice Geoespacial
O exemplo seguinte cria um índice dsphere do 2no campo especificado que contém objetos GeoJSON:
collection.createIndex(Indexes.geo2dsphere("<GeoJSON object field>"))
índice único
O exemplo seguinte cria um índice único no campo especificado:
val indexOptions = IndexOptions().unique(true) collection.createIndex(Indexes.ascending("<field name>"), indexOptions)
Índice curinga
O exemplo seguinte cria um índice curinga na coleção especificada:
collection.createIndex(Indexes.ascending("$**"))
Índices clusterizados
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)
Gerenciamento do índice do Atlas Search
As seções a seguir contêm exemplos de código que descrevem como gerenciar índices de Atlas Search .
Para saber mais sobre os índices do Atlas Search , consulte o guia Índices do Atlas Search e Vector Search .
Criar Índice de Atlas Search
O exemplo seguinte cria um índice do Atlas Search no campo especificado:
val index = Document("mappings", Document("dynamic", true)) collection.createSearchIndex("<index name>", index)
Para saber mais sobre como criar índices de pesquisa, consulte o guia Criar um índice do Atlas Search .
Listar índices de pesquisa
O exemplo abaixo imprime uma lista de índices do Atlas Search na collection especificada:
val results = collection.listSearchIndexes() results.forEach { result -> println(result) }
Para saber mais sobre como listar índices do Atlas Search , consulte o guia Listar índices do Atlas Search .
Atualizar índices de pesquisa
O exemplo seguinte atualiza um índice do Atlas Search existente com a nova definição de índice especificada:
val newIndex = Document("mappings", Document("dynamic", true)) collection.updateSearchIndex("<index name>", newIndex)
Para saber mais sobre como atualizar índices do Atlas Search , consulte o guia Atualizar um índice do Atlas Search .
Excluir índices Atlas Search
O exemplo seguinte exclui um índice do Atlas Search com o nome especificado:
collection.dropIndex("<index name>")
Para saber mais sobre como excluir índices do Atlas Search , consulte o guia Excluir um índice do Atlas Search .
Text Index
O exemplo seguinte cria um índice de texto no campo de string especificado:
collection.createIndex(Indexes.text("<field name>"))
Excluir um índice.
O exemplo a seguir exclui um índice com o nome especificado:
collection.dropIndex("<index name>")