쿼리 작업에 대한 필터 표현식 - Amazon DynamoDB

쿼리 작업에 대한 필터 표현식

Query 결과를 한층 더 좁혀야 하는 경우 선택적으로 필터 표현식을 제공할 수 있습니다. 필터 표현식Query 결과 내에서 어떤 항목을 반환할지를 결정합니다. 다른 모든 결과는 폐기됩니다.

필터 표현식은 Query이 완료된 후 결과가 반환되기 전에 적용됩니다. 따라서 필터 표현식이 있는지 여부와 상관없이 Query은 동일한 양의 읽기 용량을 사용합니다.

Query 작업은 최대 1MB의 데이터를 가져올 수 있습니다. 이 제한은 필터 표현식이 평가되기 전에 적용됩니다.

필터 표현식에는 파티션 키 또는 정렬 키 속성이 포함될 수 없습니다. 필터 표현식이 아닌 키 조건 표현식에 있는 속성을 지정해야 합니다.

필터 표현식의 구문은 키 조건 표현식의 구문과 유사합니다. 필터 표현식에는 키 조건 표현식과 동일한 비교기, 함수 및 논리적 연산자를 사용할 수 있습니다. 또한 필터 표현식에는 같지 않음 연산자(<>), OR 연산자, CONTAINS 연산자, IN 연산자, BEGINS_WITH 연산자, BETWEEN 연산자, EXISTS 연산자 및 SIZE 연산자를 사용할 수 있습니다. 자세한 내용은 쿼리 작업에 대한 키 조건 표현식필터 및 조건 표현식 구문 단원을 참조하세요.

다음 AWS CLI 예제에서는 Thread 테이블에 대해 쿼리를 실행하여 특정 ForumName(파티션 키)과 Subject(정렬 키)를 찾아봅니다. 찾은 항목 중에서 가장 인기 있는 토론 스레드가 반환됩니다. 즉, 일정 수 이상의 Views가 있는 스레드만 반환됩니다.

aws dynamodb query \ --table-name Thread \ --key-condition-expression "ForumName = :fn and Subject = :sub" \ --filter-expression "#v >= :num" \ --expression-attribute-names '{"#v": "Views"}' \ --expression-attribute-values file://values.json

--expression-attribute-values의 인수는 values.json 파일에 저장됩니다.

{ ":fn":{"S":"Amazon DynamoDB"}, ":sub":{"S":"DynamoDB Thread 1"}, ":num":{"N":"3"} }

Views는 DynamoDB에서 예약어이므로(DynamoDB의 예약어 참조) 이 예제에서는 #v를 자리 표시자로 사용합니다. 자세한 내용은 DynamoDB의 표현식 속성 이름 단원을 참조하십시오.

참고

필터 표현식은 Query 결과 집합에서 항목을 제거합니다. 많은 수의 항목을 반환할 것으로 예상되지만 해당 항목 중 대부분을 폐기해야 하는 경우 가능하다면 Query를 사용하지 마세요.