

# QueryFilter (レガシー)
<a name="LegacyConditionalParameters.QueryFilter"></a>

**注記**  
可能な限り、これらのレガシーパラメータの代わりに新しい式パラメータを使用することをお勧めします。詳細については、「[DynamoDB での式の使用](Expressions.md)」を参照してください。このパラメータに代わる新しいパラメータの具体的な情報については、「[代わりに *FilterExpression* を使用します。](#FilterExpression.instead)」を参照してください。

`Query` オペレーションでは、レガシー条件パラメータ `QueryFilter` は、項目が読み込まれた後にクエリ結果を評価し、目的の値のみを返す条件です。

このパラメータは、リストおよびマップ型の属性をサポートしません。

**注記**  
`QueryFilter` は、項目が読み込まれた後に適用されます。フィルタリングのプロセスでは、追加の読み込み容量ユニットは消費されません。

`QueryFilter` マップで複数の条件を指定すると、デフォルトでは、すべての条件が true に評価される必要があります。つまり、条件は `AND` 演算子を使用して結合されます ([ConditionalOperator (レガシー)](LegacyConditionalParameters.ConditionalOperator.md) パラメータを使用して条件を OR に設定できます。その場合、すべての条件ではなく、少なくとも 1 つの条件が true に評価される必要があります)。

`QueryFilter` ではキー属性を使用できません。パーティションキーまたはソートキーでフィルター条件を定義することはできません。

各 `QueryFilter` 要素は、比較する属性名と次の属性で構成されます。
+  `AttributeValueList` - 指定された属性に対して評価する 1 つ以上の値。リスト内の値の数は、`ComparisonOperator` で指定されている演算子により異なります。

  数値型の場合、値の比較は数値です。

  より大きい、等しい、より小さい文字列値の比較は、UTF-8 バイナリエンコーディングに基づいています。例えば、`a` は `A` より大きく、`a` は `B` より大きいと評価されます。

  バイナリの場合、DynamoDB がバイナリ値を比較する際、バイナリデータの各バイトは符号なしとして扱われます。

  JSON でのデータ型指定については、「[DynamoDB 低レベル API](Programming.LowLevelAPI.md)」を参照してください。
+  `ComparisonOperator` - 属性を評価するためのコンパレータ。例えば、等しい、より大きい、より小さいなどです。

  次の比較演算子がサポートされています。

   `EQ | NE | LE | LT | GE | GT | NOT_NULL | NULL | CONTAINS | NOT_CONTAINS | BEGINS_WITH | IN | BETWEEN` 

## 代わりに *FilterExpression* を使用 - 例
<a name="FilterExpression.instead"></a>

*Music* テーブルをクエリし、一致する項目に条件を適用する場合を考えてみます。次の AWS CLI の例に示すように、`Query` パラメータを含む `QueryFilter` リクエストを使用できます。

```
aws dynamodb query \
    --table-name Music \
    --key-conditions '{
        "Artist": {
            "ComparisonOperator": "EQ",
            "AttributeValueList": [ {"S": "No One You Know"} ]
        }   
    }' \
    --query-filter '{
        "Price": {
            "ComparisonOperator": "GT",
            "AttributeValueList": [ {"N": "1.00"} ]
        }   
    }'
```

代わりに `FilterExpression` を使用できます。

```
aws dynamodb query \
    --table-name Music \
    --key-condition-expression 'Artist = :a' \
    --filter-expression 'Price > :p' \
    --expression-attribute-values '{
        ":p": {"N":"1.00"}, 
        ":a": {"S":"No One You Know"}
    }'
```