Visão geral
Os índices compostos contêm referências a vários campos nos documentos de uma coleção, melhorando o desempenho de consulta e classificação.
Ao criar um índice composto, você deve especificar o seguinte:
Os campos nos quais criar o índice
A ordem de classificação para cada campo (crescente ou decrescente)
Dados de amostra
Os exemplos deste guia usam a movies coleção no sample_mflix banco de dados dos conjuntos de dados de amostra do Atlas . Para saber como criar um sistema gratuito do MongoDB e carregar os conjuntos de dados de exemplo, consulte o guia de introdução ao MongoDB .
A seguinte classe de dados Kotlin modela os documentos nesta coleção:
data class Movie( val id: ObjectId, val title: String? = "", val type: String? = "", val genres: List<String>? = null, val cast: List<String>? = null, val plot: String? = "", )
Criar um índice composto
O exemplo seguinte cria um índice composto nos campos type e genre , com ambos os campos indexados em ordem crescente:
collection.createIndex(Indexes.ascending(Movie::type.name, Movie::genres.name))
Veja a seguir um exemplo de uma query que usa o índice criado na amostra de código anterior:
val filter = and( eq(Movie::type.name, "movie"), `in`(Movie::genres.name, "Drama") ) val sort = Sorts.ascending(Movie::type.name, Movie::genres.name) val results = collection.find(filter).sort(sort) results.forEach { result -> println(result) }
Movie(id=573a1392f29313caabcda755, title=China Seas, type=movie, genres=[Action, Drama, Adventure], ...) Movie(id=573a1392f29313caabcd9ca6, title=Scarface, type=movie, genres=[Action, Crime, Drama], ... ) Movie(id=573a1392f29313caabcdb258, title=The Hurricane, type=movie, genres=[Action, Drama, Romance], ...) Movie(id=573a1391f29313caabcd820b, title=Beau Geste, type=movie, genres=[Action, Adventure, Drama], ...) ...
Informações adicionais
Para saber mais sobre índices compostos, consulte Índices compostos no manual do MongoDB Server .
Para saber mais sobre estratégias de indexação eficazes usando índices compostos, consulte A regra ESR no manual do MongoDB Server .
Documentação da API
Para saber mais sobre qualquer um dos métodos discutidos nesta guia, consulte a seguinte documentação da API: