Menu Docs
Página inicial do Docs
/
Manual do banco de dados
/ / /

Criar um índice composto

Í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 .

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 } } )

Voltar

composto

Nesta página