

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.

# unnest
<a name="CWL_QuerySyntax-Unnest"></a>

 `unnest`À utiliser pour aplatir une liste prise en entrée afin de produire plusieurs enregistrements avec un seul enregistrement pour chaque élément de la liste. En fonction du nombre d'éléments contenus dans un champ, cette commande supprime l'enregistrement actuel et génère de nouveaux enregistrements. Chaque enregistrement inclut le`unnested_field`, qui représente un élément. Tous les autres champs proviennent de l'enregistrement d'origine. 

 L'entrée pour `unnest` `LIST` is provient de la `jsonParse` fonction. Pour plus d'informations, consultez [la section Types de structures](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax-operations-functions.html#CWL_QuerySyntax-structure-types). Tous les autres types, tels que `MAP``numbers`, `String` et, sont traités comme une liste contenant un élément`unnest`. 

**Structure de commande**  
 L'exemple suivant décrit le format de cette commande. 

```
unnest field into unnested_field
```

**Exemple de requête**  
 L'exemple suivant analyse une chaîne d'objet JSON et développe une liste d'événements de champ. 

```
fields jsonParse(@message) as json_message 
| unnest json_message.events into event
| display event.name
```

L'événement de journal pour cet exemple de requête peut être une chaîne JSON comme suit :

```
{
   "events": [
        {
            "name": "exception"
        },
        {
            "name": "user action"
        }
   ]
}
```

Dans ce cas, l'exemple de requête produit deux enregistrements dans le résultat de la requête, l'un avec « `event.name` as » `exception` et l'autre avec « `event.name` as **user action** »

**Exemple de requête**  
 L'exemple suivant aplatit une liste, puis filtre les éléments. 

```
fields jsonParse(@message) as js 
| unnest js.accounts into account 
| filter account.type = "internal"
```

**Exemple de requête**  
 L'exemple suivant aplatit une liste à des fins d'agrégation. 

```
fields jsonParse(trimmedData) as accounts 
| unnest accounts into account 
| stats sum(account.droppedSpans) as n by account.accountId 
| sort n desc 
| limit 10
```