DynamoDB의 조건 및 필터 표현식, 연산자, 함수
DynamoDB 테이블에서 데이터를 조작하려면 PutItem
, UpdateItem
및 DeleteItem
작업을 사용합니다. 이러한 데이터 조작 작업의 경우 조건 표현식을 지정하여 어떤 항목을 수정할지를 결정할 수 있습니다. 조건 표현식이 true로 평가되는 경우 작업이 성공합니다. 그렇지 않으면 작업이 실패합니다.
이 섹션에서는 Amazon DynamoDB에서 필터 표현식 및 조건 표현식을 작성하기 위한 기본 제공 함수와 키워드에 대해 살펴봅니다. DynamoDB를 사용한 함수 및 프로그래밍에 대한 자세한 내용은 DynamoDB 및 AWS SDK를 사용한 프로그래밍 및 DynamoDB API 참조를 참조하세요.
필터 및 조건 표현식 구문
아래의 구문 요약에서 피연산 함수
는 다음과 같이 사용됩니다.
-
Id
,Title
,Description
,ProductCategory
등의 최상위 속성 -
내포 속성을 참조하는 문서 경로
condition-expression ::=
operand
comparatoroperand
|operand
BETWEENoperand
ANDoperand
|operand
IN (operand
(','operand
(, ...) )) | function |condition
ANDcondition
|condition
ORcondition
| NOTcondition
| (condition
) comparator ::= = | <> | < | <= | > | >= function ::= attribute_exists (path
) | attribute_not_exists (path
) | attribute_type (path
,type
) | begins_with (path
,substr
) | contains (path
,operand
) | size (path
)
비교 실행
다음 비교기를 사용하여 피연산자를 단일 값과 비교합니다.
-
-a
=b
a
가b
와 같은 경우 true입니다. -
-a
<>b
a
가b
와 같지 않은 경우 true입니다. -
-a
<b
a
가b
보다 작은 경우 true입니다. -
-a
<=b
a
가b
보다 작거나 같은 경우 true입니다. -
-a
>b
a
가b
보다 큰 경우 true입니다. -
-a
>=b
a
가b
보다 크거나 같은 경우 true입니다.
BETWEEN
및 IN
키워드를 사용하여 피연산 함수와 값의 범위 또는 열거된 값 목록을 비교합니다.
-
-a
BETWEENb
ANDc
a
가b
보다 크거나 같고c
보다 작거나 같은 경우 true입니다. -
-a
IN (b
,c
,d
)a
가 목록의 임의 값(b
,c
,d
값 등)과 같은 경우 true입니다. 목록에는 쉼표로 구분된 최대 100개의 값이 포함될 수 있습니다.
함수
다음의 함수를 사용하여 항목에 속성이 존재하는지 판단하거나 속성 값을 평가합니다. 함수 이름은 대/소문자를 구분합니다. 중첩 속성의 경우 전체 문서 경로를 제공해야 합니다.
함수 | 설명 |
---|---|
|
예:
|
|
예: 항목에
|
|
지정된 경로의 속성이 특정 데이터 유형인 경우 true.
예:
|
|
예: 정면 사진 URL이
수식 속성 값인 |
|
경로와 피연산자는 서로 달라야 합니다. 즉, 예:
수식 속성 값인 예: 빨간색 제품 색상을 선택할 수 있는지 확인합니다.
수식 속성 값인 |
|
속성의 크기를 나타내는 숫자가 반환됩니다. 속성이 예:
속성이 예:
속성이 예: 한 가지 이상의 제품 색상을 선택할 수 있는지 확인합니다. 수식 속성 값인
속성이 예:
|
논리 평가
AND
, OR
및 NOT
키워드를 사용하여 논리 평가를 수행합니다. 아래의 목록에서 a
와 b
는 평가될 조건을 나타냅니다.
-
-a
ANDb
a
와b
가 모두 true인 경우 true입니다. -
-a
ORb
a
또는b
(또는 둘 모두)가 true인 경우 true입니다. -
NOT
-a
a
가 false인 경우 true입니다.a
가 true인 경우 false입니다.
다음은 연산에서 AND를 사용한 코드 예제입니다.
dynamodb-local (*)> select * from exprtest where a > 3 and a <
5;
괄호
논리 평가의 우선 순위를 변경하려면 괄호를 사용합니다. 예를 들어 a
및 b
조건이 true이고 c
조건이 false인 경우를 가정할 수 있습니다. 다음 수식들은 true로 평가됩니다.
-
a
ORb
ANDc
그러나 조건을 괄호로 묶으면 해당 조건을 먼저 평가하게 됩니다. 예를 들어 아래의 경우에는 false로 평가됩니다.
-
(
a
ORb
) ANDc
참고
수식에 괄호를 포함시킬 수 있습니다. 가장 안쪽에 위치한 괄호부터 먼저 평가됩니다.
다음은 논리 평가에 괄호가 포함된 코드 예제입니다.
dynamodb-local (*)> select * from exprtest where attribute_type(b, string) or
( a = 5 and c = “coffee”);
조건식의 우선 순위
DynamoDB는 다음의 우선 순위 규칙을 사용하여 왼쪽에서 오른쪽 방향으로 조건식을 평가합니다.
-
= <> < <= > >=
-
IN
-
BETWEEN
-
attribute_exists attribute_not_exists begins_with contains
-
괄호
-
NOT
-
AND
-
OR