

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.

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

 Se debe utilizar `unnest` para aplanar una lista tomada como entrada y generar varios registros con un único registro para cada elemento de la lista. En función de la cantidad de elementos que contenga un campo, este comando descarta el registro actual y genera nuevos registros. Cada registro incluye el `unnested_field`, que representa un elemento. Todos los demás campos provienen del registro original. 

 La entrada para `unnest` es `LIST`, que proviene de la función `jsonParse`. Para obtener más información, consulte [Tipos de estructura](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax-operations-functions.html#CWL_QuerySyntax-structure-types). Cualquier otro tipo, como `MAP`, `String` y `numbers`, se trata como una lista con un elemento en `unnest`. 

**Estructura de comandos**  
 En el ejemplo siguiente, se describe el formato de este comando. 

```
unnest field into unnested_field
```

**Consulta de ejemplo**  
 En el siguiente ejemplo, se analiza una cadena de objeto JSON y se amplía una lista de eventos de campo. 

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

El evento de registro de esta consulta de ejemplo podría ser una cadena JSON de la siguiente manera:

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

En este caso, la consulta de ejemplo genera dos registros en el resultado de la consulta, uno con `event.name` como `exception` y otro con `event.name` como **acción del usuario**

**Consulta de ejemplo**  
 En el siguiente ejemplo, se aplana una lista y, a continuación, se filtran los elementos. 

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

**Consulta de ejemplo**  
 En el siguiente ejemplo, se aplana una lista para su agregación. 

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