MongoDB proporciona compatibilidad completa para los índices en cualquier campo de un colección of documents. Por defecto, todas las colecciones tienen un índice en el campo _id y las aplicaciones y los usuarios pueden añadir índices adicionales para mejorar consultas y operaciones importantes.
Este documento describe índices ascendentes/descendentes en un solo campo.
Compatibilidad
Puede utilizar índices de campo único para implementaciones alojadas en MongoDB Atlas.
Para obtener más información sobre cómo administrar índices para las implementaciones alojadas en MongoDB Atlas, consulta Crear, ver, eliminar y ocultar índices.
Crear un índice ascendente en un solo campo
Considere una colección schools que contiene el siguiente documento de muestra:
db.schools.insertOne( { "_id": ObjectId("570c04a4ad233577f97dc459"), "studentsEnrolled": 1034, "location": { state: "NY", city: "New York" } } )
La siguiente operación crea un índice ascendente en el campo studentsEnrolled de la colección schools:
db.schools.createIndex( { studentsEnrolled: 1 } )
El índice creado admite consultas que seleccionan en el campo studentsEnrolled, como las siguientes:
db.schools.find( { studentsEnrolled: 1034 } ) db.schools.find( { studentsEnrolled: { $gt: 500 } } )
Crear un índice en un campo incrustado
Puede crear índices en campos dentro de documentos incrustados, así como puede indexar campos de nivel superior en documentos. Los índices en campos incrustados difieren de índices en documentos incrustados, que incluyen el contenido completo hasta el tamaño máximo del índice del documento incrustado en el índice. En su lugar, los índices en campos embebidos permiten utilizar la "notación de puntos" para inspeccionar documentos incrustados.
Considera una colección denominada records que contiene documentos que se asemejan al siguiente documento de muestra:
{ "_id": ObjectId("570c04a4ad233577f97dc459"), "studentsEnrolled": 1034, "location": { state: "NY", city: "New York" } }
La siguiente operación crea un índice en el campo location.state:
db.schools.createIndex( { "location.state": 1 } )
El índice creado admitirá consultas que seleccionen en el campo location.state, como las siguientes:
db.schools.find( { "location.state": "CA" } ) db.schools.find( { "location.city": "Albany", "location.state": "NY" } )
Crear un índice en un documento incrustado
También puedes crear índices en todo el documento incrustado.
Cuando creas un índice en un documento incrustado, solo las consultas que especifican el documento incrustado completo utilizan el índice. Las consultas sobre un campo específico dentro de un documento no utilizan el índice.
Considera una colección denominada schools que contiene documentos que se asemejan al siguiente documento de muestra:
{ "_id": ObjectId("570c04a4ad233577f97dc459"), "studentsEnrolled": 1034, "location": { state: "NY", city: "New York" } }
El campo location es un documento incrustado que contiene los campos incrustados city y state. El siguiente comando crea un índice en el campo location como un todo:
db.schools.createIndex( { location: 1 } )
La siguiente consulta puede utilizar el índice en el campo location:
db.schools.find( { location: { city: "New York", state: "NY" } } )
Nota
Aunque la consulta puede usar el índice, el conjunto de resultados no incluye el documento de ejemplo anterior. Al realizar búsquedas de igualdad en documentos incrustados, el orden de los campos es importante y los documentos incrustados deben coincidir exactamente. Consulte Consultar documentos incrustados para obtener más información sobre las consultas en documentos incrustados.
Consideraciones adicionales
Durante la creación de índices, las aplicaciones pueden experimentar un rendimiento reducido o acceso de lectura/escritura limitado a la colección que se está indexando.
Para obtener más información sobre el proceso de creación de índices, consulte Creaciones de índices en colecciones pobladas, especialmente la sección Creaciones de índices en entornos replicados.
Algunos controladores utilizan Long(1) en lugar de 1 para especificar el orden del índice. Los índices resultantes son los mismos.