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
/ /

Crear un índice compuesto

Los índices compuestos son índices que contienen referencias a múltiples campos. Mejoran el rendimiento de las consultas sobre exactamente los campos del índice o los campos del... index prefix.

Para crear un índice compuesto, utilice el db.collection.createIndex() :

db.<collection>.createIndex( {
<field1>: <sortOrder>,
<field2>: <sortOrder>,
...
<fieldN>: <sortOrder>
} )

Puedes especificar hasta 32 campos en un único índice compuesto.

Crea una colección students que contenga estos 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" }
}
])

La siguiente operación crea un índice compuesto que contiene los campos name y gpa:

db.students.createIndex( {
name: 1,
gpa: -1
} )

En este ejemplo:

  • El índice en name es ascendente (1).

  • El índice en gpa es descendente (-1).

El índice creado admite queries que seleccionan en:

  • Ambos campos name y gpa.

  • Solo el campo name, porque name es un prefijo del índice compuesto.

Por ejemplo, el índice admite estos queries:

db.students.find( { name: "Alice", gpa: 3.6 } )
db.students.find( { name: "Bob" } )

El índice no admite queries solo sobre el campo gpa, porque gpa no forma parte del prefijo del índice. Por ejemplo, el índice no admite este query:

db.students.find( { gpa: { $gt: 3.5 } } )

Volver

Compuesto

En esta página