Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/
Manual de base de datos
/

Índices de un solo campo

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.

Diagrama de un índice en el campo "puntuación" (ascendente).

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.

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

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

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.

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.

Volver

Indexes

En esta página