QueryFilter(레거시) - Amazon DynamoDB

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

QueryFilter(레거시)

참고

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

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

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

참고

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

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

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

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

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

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

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

    이진수 유형의 경우, 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 예제에서와 같이 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"} }'