

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 解巢狀
<a name="CWL_QuerySyntax-Unnest"></a>

 使用 `unnest`將做為輸入的清單扁平化，為清單中的每個元素產生具有單一記錄的多個記錄。根據欄位包含的項目數量，此命令會捨棄目前的記錄並產生新的記錄。每個記錄都包含 `unnested_field`，代表一個項目。所有其他欄位都來自原始記錄。

 的輸入`unnest`是 `LIST`，其來自 `jsonParse`函數。如需詳細資訊，請參閱[結構類型](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax-operations-functions.html#CWL_QuerySyntax-structure-types)。任何其他類型，例如 `MAP``String`和 `numbers`，都會被視為清單中有一個項目`unnest`。

**命令結構**  
 下列範例說明此命令的格式。

```
unnest field into unnested_field
```

**查詢範例**  
 下列範例剖析 JSON 物件字串並展開欄位事件清單。

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

此範例查詢的日誌事件可以是 JSON 字串，如下所示：

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

在此情況下，範例查詢會在查詢結果中產生兩個記錄，一個為 `event.name`，`exception`另一個為 `event.name`作為**使用者動作**

**查詢範例**  
 下列範例會扁平化清單，然後篩選出項目。

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

**查詢範例**  
 下列範例會扁平化要彙總的清單。

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