

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

# 篩選條件
<a name="aws-appsync-resolver-mapping-template-reference-dynamodb-filter"></a>

使用 `Query`和 `Scan`操作查詢 DynamoDB 中的物件時，您可以選擇指定`filter`評估結果並僅傳回所需值的 。

`Query` 或 `Scan` 映射文件的篩選條件映射區段之結構如下：

```
"filter" : {
    "expression" : "filter expression"
    "expressionNames" : {
        "#name" : "name",
    },
    "expressionValues" : {
        ":value" : ... typed value
    },
}
```

欄位定義如下：

** `expression` **  
查詢表達式。如需如何編寫篩選條件表達式的詳細資訊，請參閱 [DynamoDB QueryFilter](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.QueryFilter.html) 和 [DynamoDB ScanFilter](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.ScanFilter.html) 文件。必須指定此欄位。

** `expressionNames` **  
表達式屬性 *name* 預留位置的替代，形式為鍵值組。索引鍵對應至用於 `expression` 的名稱預留位置。值必須是對應於 DynamoDB 中項目屬性名稱的字串。此欄位為選用的，應只能填入用於 `expression` 中表達式屬性名稱預留位置的替代。

** `expressionValues` **  
表達式屬性 *value* 預留位置的替代，形式為鍵值組。鍵對應用於 `expression` 的值預留位置，值必須是類型值。如需如何指定「類型值」的詳細資訊，請參閱[類型系統 (請求映射)](aws-appsync-resolver-mapping-template-reference-dynamodb-typed-values-request.md)。此必須指定。此欄位為選用的，應只能填入用於 `expression` 中表達式屬性值預留位置的替代。

## 範例
<a name="id18"></a>

下列範例是映射範本的篩選條件區段，只有在標題開頭為 `title`引數時，才會傳回從 DynamoDB 擷取的項目。

```
"filter" : {
    "expression" : "begins_with(#title, :title)",
    "expressionNames" : {
        "#title" : "title"
    },
    "expressionValues" : {
        ":title" : $util.dynamodb.toDynamoDBJson($context.arguments.title)
    }
}
```