ScanFilter(레거시) - Amazon DynamoDB

ScanFilter(레거시)

참고

가능하면 이러한 레거시 파라미터 대신 새 표현식 파라미터를 사용하는 것이 좋습니다. 자세한 내용은 DynamoDB에서 표현식 사용 단원을 참조하십시오. 이 파라미터를 대체하는 새 파라미터에 대한 자세한 내용은 대신 FilterExpression을 사용합니다. 섹션을 참조하세요.

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

참고

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

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

ScanFilter 요소는 비교할 속성 이름 및 다음 파라미터로 구성됩니다.

  • AttributeValueList - 제공된 속성에 대해 평가되는 하나 이상의 값. 목록에 있는 값의 개수는 ComparisonOperator에 지정된 연산자에 따라 달라집니다.

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

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

    Binary의 경우, DynamoDB가 이진수 값을 비교할 때 이진수 데이터의 각 바이트를 부호가 없는 것으로 처리합니다.

    JSON에 데이터 형식을 지정하는 방법에 대한 자세한 내용은 DynamoDB 하위 수준 API 단원을 참조하십시오.

  • ComparisonOperator - 속성을 평가하는 비교기. 예: 같다, 크다, 작다.

    다음 비교 연산자를 사용할 수 있습니다.

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

대신 FilterExpression 사용 - 예

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

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