Puede crear un índice en un solo campo para mejorar el rendimiento de las consultas en ese campo.
Para crear un índice de campo único, utiliza el
db.collection.createIndex() :
db.<collection>.createIndex( { <field>: <sort-order> } )
Antes de comenzar
Creá una colección students que contenga los siguientes 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" } } ] )
Procedimientos
Los siguientes ejemplos te muestran cómo:
Crear un índice en un único campo
Considera a un administrador escolar que busca frecuentemente a los estudiantes por su GPA. Se puede crear un índice en el campo gpa para mejorar el rendimiento de esas consultas:
db.students.createIndex( { gpa: 1 } )
Resultados
El índice admite consultas que seleccionan en el campo gpa, tales como las siguientes:
db.students.find( { gpa: 3.6 } ) db.students.find( { gpa: { $lt: 3.4 } } )
Crear un índice en un campo incrustado
Puedes crear índices en campos dentro de documentos incrustados. Los índices en campos embebidos pueden satisfacer las queries que utilizan notación de puntos.
El campo location es un documento incrustado que contiene los campos incrustados city y state. Crea un índice en el campo location.state:
db.students.createIndex( { "location.state": 1 } )
Resultados
El índice admite consultas en el campo location.state, como las siguientes:
db.students.find( { "location.state": "California" } ) db.students.find( { "location.city": "Albany", "location.state": "New York" } )