

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Multi-key Índices
<a name="indexes-multikey"></a>

Para los campos que tienen un valor de matriz, un índice de varias claves le permite crear una clave de índice para cada elemento de la matriz. Al indexar una matriz, se crea una entrada de índice para cada elemento de la matriz.

Multi-key Los índices son beneficiosos cuando la aplicación consulta o filtra documentos con frecuencia en función de los valores de las matrices.

## Propiedades de índice compatibles
<a name="indexes-multikey-properties"></a>


| Opción | 3.6 | 4.0 | 5.0 | 8.0 | Elastic Cluster | 
| --- | --- | --- | --- | --- | --- | 
| [name](index-property-name.md) | Sí | Sí | Sí | Sí | Sí | 
| [único](index-property-unique.md) | Sí | Sí | Sí | Sí | Sí | 
| [escaso \*](index-property-sparse.md) | Sí | Sí | Sí | Sí | Sí | 
| [parcial \* FilterExpression](index-property-partialfilterexpression.md) | No | No | Sí | Sí | No | 
| [caducar AfterSeconds](index-property-expireafterseconds.md) | Sí | Sí | Sí | Sí | Sí | 

\* Las `partialFilterExpression` opciones `sparse` y no se pueden usar juntas en la misma definición de índice. Si intenta crear un índice con estas opciones, se producirá el siguiente error:

```
Error in specification: cannot mix partialFilterExpression and sparse options
```

## Crear un índice de varias claves
<a name="indexes-multikey-creating"></a>

Utilice el `createIndex()` método para crear un índice de varias claves. La sintaxis del método es: `db.collection.createIndex(<key>, <options>)`

El `key` parámetro es un documento JSON que especifica el orden de clasificación del campo y del índice:

```
{
  "<field>": <1 (ascending)|-1 (descending)>
}
```

El `options` parámetro es un documento JSON que especifica las opciones del índice:

```
{
  "name": "<name>",
  "unique": <true | false>,
  "sparse": <true | false>,
  "partialFilterExpression": <filter expression>,
  "expireAfterSeconds": <seconds before expiry>
}
```

El siguiente ejemplo crea un índice de varias claves en el `categories` campo, ordenado en orden ascendente con el nombre: `book_categories`

```
db.collection.createIndex(
  {
    "categories": 1
  },
  {
    "name": "book_categories"
  }
)
```

Consulte [Propiedades del índice](index-properties.md) para ver ejemplos de cómo crear índices de varias claves.