

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

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

`Scan` 작업에서 레거시 조건 파라미터 `ScanFilter`는 원하는 값만 반환한 후 쿼리 결과를 평가하는 조건입니다.

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

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

각 `ScanFilter` 요소는 비교할 속성 이름 및 다음 파라미터로 구성됩니다.
+  `AttributeValueList` - 제공된 속성에 대해 평가되는 하나 이상의 값. 목록에 있는 값의 개수는 `ComparisonOperator`에 지정된 연산자에 따라 달라집니다.

  숫자 유형의 경우 값 비교가 숫자입니다.

  크다, 같다 또는 작다 등의 문자열 값 비교는 UTF-8 이진 인코딩을 기준으로 합니다. 예를 들어 `a`는 `A`보다 크고 `a`는 `B`보다 큽니다.

  Binary의 경우, 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="FilterExpression2.instead"></a>

*Music* 테이블을 검색하는데 일치하는 항목에 조건을 적용하고 싶다고 가정합니다. 다음 `Scan` 예제에서와 같이 `ScanFilter` 요청을 AWS CLI 파라미터와 함께 사용할 수 있습니다.

```
aws dynamodb scan \
    --table-name Music \
    --scan-filter '{
        "Genre":{
            "AttributeValueList":[ {"S":"Rock"} ],
            "ComparisonOperator": "EQ"
        }
    }'
```

대신에 `FilterExpression`을 사용할 수 있습니다.

```
aws dynamodb scan \
    --table-name Music \
    --filter-expression 'Genre = :g' \
    --expression-attribute-values '{
        ":g": {"S":"Rock"} 
    }'
```