

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# ネスト解除
<a name="CWL_QuerySyntax-Unnest"></a>

 `unnest` を使用し、入力として取得されたリストをフラット化し、リスト内の各要素に対して 1 つのレコードを持つ複数のレコードを生成します。フィールドに含まれる項目の数に基づいて、このコマンドは現在のレコードを破棄し、新しいレコードを生成します。各レコードには、項目を表す `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` に 1 つの項目を含むリストとして扱われます。

**コマンド構造**  
 以下の例はこのコマンドの形式を説明しています。

```
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"
        }
   ]
}
```

この場合、サンプルクエリはクエリ結果に 2 つのレコードを生成します。1 つは `exception` として `event.name` を使用し、もう 1 つは**ユーザーアクション**として `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
```