필터 - AWS AppSync

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

필터

QueryScan 작업을 사용하여 DynamoDB에서 객체를 쿼리하는 경우, 결과를 평가해 원하는 값만 반환하는 filter를 선택적으로 지정할 수 있습니다.

Query 또는 Scan 요청의 필터 속성은 다음과 같은 구조를 갖습니다.

type DynamoDBExpression = { expression: string; expressionNames?: { [key: string]: string}; expressionValues?: { [key: string]: any}; };

필드는 다음과 같이 정의됩니다.

expression

쿼리 표현식. 필터 표현식을 작성하는 방법에 대한 자세한 내용은 DynamoDB QueryFilterDynamoDB 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" } } } }