

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

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

Pour les champs dotés d'une valeur de tableau, un index multiclé vous permet de créer une clé d'index pour chaque élément du tableau. L'indexation d'un tableau crée une entrée d'index pour chaque élément du tableau.

Multi-key les index sont utiles lorsque votre application interroge ou filtre fréquemment des documents en fonction de valeurs dans des tableaux.

## Propriétés d'index prises en charge
<a name="indexes-multikey-properties"></a>


| Option | 3.6 | 4.0 | 5.0 | 8.0 | Cluster élastique | 
| --- | --- | --- | --- | --- | --- | 
| [nom](index-property-name.md) | Oui | Oui | Oui | Oui | Oui | 
| [unique](index-property-unique.md) | Oui | Oui | Oui | Oui | Oui | 
| [clairsemé \*](index-property-sparse.md) | Oui | Oui | Oui | Oui | Oui | 
| [partiel FilterExpression](index-property-partialfilterexpression.md) \* | Non | Non | Oui | Oui | Non | 
| [expirer AfterSeconds](index-property-expireafterseconds.md) | Oui | Oui | Oui | Oui | Oui | 

\* Les `partialFilterExpression` options `sparse` et ne peuvent pas être utilisées ensemble dans la même définition d'index. Si vous essayez de créer un index avec ces options, il échouera avec l'erreur suivante :

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

## Création d'un index multiclé
<a name="indexes-multikey-creating"></a>

Utilisez `createIndex()` cette méthode pour créer un index multiclé. La syntaxe de la méthode est la suivante : `db.collection.createIndex(<key>, <options>)`

Le `key` paramètre est un document JSON qui spécifie le champ et l'ordre de tri de l'index :

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

Le `options` paramètre est un document JSON qui spécifie les options de l'index :

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

L'exemple suivant crée un index multiclé sur le `categories` champ trié par ordre croissant avec le nom : `book_categories`

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

Voir [Propriétés de l'index](index-properties.md) pour des exemples de création d'index multiclés.