기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
필터
Query
및 Scan
작업을 사용하여 DynamoDB에서 객체를 쿼리하는 경우, 결과를 평가해 원하는 값만 반환하는 filter
를 선택적으로 지정할 수 있습니다.
Query
또는 Scan
요청의 필터 속성은 다음과 같은 구조를 갖습니다.
type DynamoDBExpression = { expression: string; expressionNames?: { [key: string]: string}; expressionValues?: { [key: string]: any}; };
필드는 다음과 같이 정의됩니다.
-
expression
-
쿼리 표현식. 필터 표현식을 작성하는 방법에 대한 자세한 내용은 DynamoDB QueryFilter 및 DynamoDB ScanFilter 설명서를 참조하세요. 이 필드는 지정되어 있어야 합니다.
-
expressionNames
-
표현식 속성 name 자리 표시자의 대체 항목으로, 키-값 페어의 형식으로 표시됩니다. 키는
expression
에 사용된 이름 자리 표시자에 해당합니다. 이 값은 DynamoDB에서 항목의 속성 이름에 해당하는 문자열이어야 합니다. 이 필드는 선택 사항으로,expression
에 사용된 표현식 속성인 name 자리 표시자의 대체 항목으로만 채워져야 합니다. -
expressionValues
-
표현식 속성 value 자리 표시자의 대체 항목으로, 키-값 페어의 형식으로 표시됩니다. 키는
expression
에 사용되는 value 자리 표시자에 해당하고 값은 입력된 값이어야 합니다. '입력된 값'을 지정하는 방법에 대한 자세한 내용은 유형 시스템(요청 매핑)을 참조하세요. 입력된 값은 지정되어 있어야 합니다. 이 필드는 선택 사항으로,expression
에 사용된 표현식 속성인 value 자리 표시자의 대체 항목으로만 채워져야 합니다.
예
다음 예제는 요청의 필터 섹션으로, 여기서 DynamoDB에서 가져온 항목은 제목이 title
인수로 시작되는 경우에만 반환됩니다.
여기서는 util.transform.toDynamoDBFilterExpression
을 사용하여 객체에서 필터를 자동으로 생성합니다.
const filter = util.transform.toDynamoDBFilterExpression({ title: { beginsWith: 'far away' }, }); const request = {}; request.filter = JSON.parse(filter);
그러면 다음과 같은 필터가 생성됩니다.
{ "filter": { "expression": "(begins_with(#title,:title_beginsWith))", "expressionNames": { "#title": "title" }, "expressionValues": { ":title_beginsWith": { "S": "far away" } } } }