Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ / /

Criar um índice composto

Nesta página

  • Restrição
  • Antes de começar
  • Procedimento
  • Resultados
  • Saiba mais

Índices compostos são índices que contêm referências a vários campos. Os índices compostos melhoram o desempenho de queries exatamente nos campos do índice ou dos campos noprefixo do índice . A indexação de campos comumente consultados aumenta as chances de cobrir essas queries, o que significa que o MongoDB pode satisfazer a query inteiramente com o índice, sem examinar documentos.

Para criar um índice composto, utilize o método db.collection.createIndex() :

db.<collection>.createIndex( {
<field1>: <sortOrder>,
<field2>: <sortOrder>,
...
<fieldN>: <sortOrder>
} )

Você pode especificar até 32 campos em um único índice composto.

Crie uma coleção students que contenha estes documento:

db.students.insertMany([
{
"name": "Alice",
"gpa": 3.6,
"location": { city: "Sacramento", state: "California" }
},
{
"name": "Bob",
"gpa": 3.2,
"location": { city: "Albany", state: "New York" }
}
])

A seguinte operação cria um índice composto contendo os campos name e gpa:

db.students.createIndex( {
name: 1,
gpa: -1
} )

Neste exemplo:

  • O índice em name é ascendente (1).

  • O índice em gpa é decrescente (-1).

O índice criado suporta queries que selecionam em:

  • Ambos os campos name e gpa.

  • Somente o campo name, porque name é um prefixo do índice composto.

Por exemplo, o índice aceita estas queries:

db.students.find( { name: "Alice", gpa: 3.6 } )
db.students.find( { name: "Bob" } )

O índice não suporta queries apenas no campo gpa, porque gpa não faz parte do prefixo do índice. Por exemplo, o índice não oferece suporte à query a seguir:

db.students.find( { gpa: { $gt: 3.5 } } )
← Índices compostos