Você pode criar um índice em um único campo para melhorar o desempenho de query nesse campo.
Para criar um índice de campo único, utilize o método db.collection.createIndex():
db.<collection>.createIndex( { <field>: <sort-order> } )
Antes de começar
Crie uma coleção de students que contenha os seguintes documentos:
db.students.insertMany( [ { "name": "Alice", "gpa": 3.6, "location": { city: "Sacramento", state: "California" } }, { "name": "Bob", "gpa": 3.2, "location": { city: "Albany", state: "New York" } } ] )
Procedimentos
Os exemplos a seguir mostram como:
Criar um índice em um campo único
Considere um administrador da escola que frequentemente procura alunos pelo GPA. Você pode criar um índice no campo gpa para melhorar o desempenho dessas query:
db.students.createIndex( { gpa: 1 } )
Resultados
O índice suporta queries que selecionam no campo gpa, como o seguinte:
db.students.find( { gpa: 3.6 } ) db.students.find( { gpa: { $lt: 3.4 } } )
Criar um Índice em um Campo Incorporado
É possível criar índices em campos dentro de documentos incorporados. Os índices em campos incorporados podem atender a queries que usam notação de ponto.
O campo location é um documento incorporado que contém os campos incorporados city e state. Crie um índice no campo location.state:
db.students.createIndex( { "location.state": 1 } )
Resultados
O índice suporta queries no campo location.state, como o seguinte:
db.students.find( { "location.state": "California" } ) db.students.find( { "location.city": "Albany", "location.state": "New York" } )