

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

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

Para campos que têm um valor de matriz, um índice de várias chaves permite criar uma chave de índice para cada elemento na matriz. A indexação de uma matriz cria uma entrada de índice para cada elemento da matriz.

Multi-key índices são benéficos quando seu aplicativo consulta ou filtra documentos com frequência com base em valores em matrizes.

## Propriedades de índice suportadas
<a name="indexes-multikey-properties"></a>


| Opção | 3.6 | 4,0 | 5,0 | 8.0 | Cluster elástico | 
| --- | --- | --- | --- | --- | --- | 
| [name](index-property-name.md) | Sim | Sim | Sim | Sim | Sim | 
| [único](index-property-unique.md) | Sim | Sim | Sim | Sim | Sim | 
| [esparso \*](index-property-sparse.md) | Sim | Sim | Sim | Sim | Sim | 
| [parcial FilterExpression](index-property-partialfilterexpression.md) \* | Não | Não | Sim | Sim | Não | 
| [expirar AfterSeconds](index-property-expireafterseconds.md) | Sim | Sim | Sim | Sim | Sim | 

\* As `partialFilterExpression` opções `sparse` e não podem ser usadas juntas na mesma definição de índice. Se você tentar criar um índice com essas opções, ele falhará com o seguinte erro:

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

## Criação de um índice de várias chaves
<a name="indexes-multikey-creating"></a>

Use o `createIndex()` método para criar um índice de várias chaves. A sintaxe do método é: `db.collection.createIndex(<key>, <options>)`

O `key` parâmetro é um documento JSON que especifica o campo e a ordem de classificação do índice:

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

O `options` parâmetro é um documento JSON que especifica as opções para o índice:

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

O exemplo a seguir cria um índice de várias chaves no `categories` campo classificado em ordem crescente com o nome: `book_categories`

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

Consulte [Propriedades do índice](index-properties.md) para ver exemplos de criação de índices com várias chaves.