

# QueryFilter(레거시)
<a name="LegacyConditionalParameters.QueryFilter"></a>

**참고**  
가능하면 이러한 레거시 파라미터 대신 새 표현식 파라미터를 사용하는 것이 좋습니다. 자세한 내용은 [DynamoDB에서 표현식 사용](Expressions.md) 섹션을 참조하세요. 이 파라미터를 대체하는 새 파라미터에 대한 자세한 내용은 [대신 *FilterExpression*을 사용합니다.](#FilterExpression.instead) 섹션을 참조하세요.

`Query` 작업에서 레거시 조건 파라미터 `QueryFilter`는 항목이 읽히고 원하는 값만 반환한 후 쿼리 결과를 평가하는 조건입니다.

이 파라미터는 목록 또는 맵 유형의 속성을 지원하지 않습니다.

**참고**  
`QueryFilter`는 항목이 이미 읽힌 후에 적용되므로 필터링 프로세스로 인해 읽기 용량 단위를 추가로 사용하지 않습니다.

`QueryFilter` 맵에 조건을 다수 제공하는 경우, 기본적으로 모든 조건이 true로 평가됩니다. 즉, 조건은 `AND` 연산자를 사용하여 결합됩니다. (대신 [ConditionalOperator(레거시)](LegacyConditionalParameters.ConditionalOperator.md) 파라미터를 사용하여 조건을 OR로 연결할 수 있습니다. 이렇게 하는 경우 모든 조건이 아니라 조건 중 하나 이상이 true로 평가되어야 합니다.)

`QueryFilter`에는 키 속성을 사용할 수 없습니다. 파티션 키 또는 정렬 키에는 필터 조건을 정의할 수 없습니다.

각 `QueryFilter` 요소는 비교할 속성 이름 및 다음 파라미터로 구성됩니다.
+  `AttributeValueList` - 제공된 속성에 대해 평가되는 하나 이상의 값. 목록에 있는 값의 개수는 `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* 테이블을 쿼리하는데 일치하는 항목에 조건을 적용하고 싶다고 가정합니다. 다음 `Query` 예제에서와 같이 `QueryFilter` 요청을 AWS CLI 파라미터와 함께 사용할 수 있습니다.

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