DynamoDB에서 표현식 사용 시 항목 속성 참조
이 단원에서는 Amazon DynamoDB의 표현식에서 항목 속성을 참조하는 방법을 설명합니다. 여러 목록과 맵 내부에 깊이 중첩된 경우에도 속성에 대한 작업을 수행할 수 있습니다.
샘플 항목: ProductCatalog
이 페이지의 예에서는 ProductCatalog
테이블의 다음 샘플 항목을 사용합니다. 이 테이블에 대해서는 DynamoDB에서 사용할 테이블 및 데이터 예제에서 설명합니다.
{ "Id": 123, "Title": "Bicycle 123", "Description": "123 description", "BicycleType": "Hybrid", "Brand": "Brand-Company C", "Price": 500, "Color": ["Red", "Black"], "ProductCategory": "Bicycle", "InStock": true, "QuantityOnHand": null, "RelatedItems": [ 341, 472, 649 ], "Pictures": { "FrontView": "http://example.com/products/123_front.jpg", "RearView": "http://example.com/products/123_rear.jpg", "SideView": "http://example.com/products/123_left_side.jpg" }, "ProductReviews": { "FiveStar": [ "Excellent! Can't recommend it highly enough! Buy it!", "Do yourself a favor and buy this." ], "OneStar": [ "Terrible product! Do not buy this." ] }, "Comment": "This product sells out quickly during the summer", "Safety.Warning": "Always wear a helmet" }
유의할 사항:
-
파티션 키 값(
Id
)은123
입니다. 정렬 키는 없습니다. -
대부분의 속성에는
String
,Number
,Boolean
및Null
같은 스칼라 데이터 형식이 있습니다. -
속성 하나(
Color
)는String Set
입니다. -
다음 속성은 문서 데이터 형식입니다.
-
RelatedItems
목록. 각 요소가 관련 제품의Id
입니다. -
Pictures
맵. 각 요소가 이미지에 대한 간단한 설명이며, 해당 이미지 파일의 URL이 함께 제공됩니다. -
ProductReviews
맵. 각 요소가 평점과 해당 평점에 상응하는 리뷰 목록을 나타냅니다. 처음에 이 맵은 별 5개 및 1개 리뷰로 채워집니다.
-
최상위 속성
속성이 다른 속성 내부에 포함되어 있지 않은 경우 이러한 속성을 최상위라고 합니다. ProductCatalog
항목의 경우 최상위 속성은 다음과 같습니다.
-
Id
-
Title
-
Description
-
BicycleType
-
Brand
-
Price
-
Color
-
ProductCategory
-
InStock
-
QuantityOnHand
-
RelatedItems
-
Pictures
-
ProductReviews
-
Comment
-
Safety.Warning
이러한 최상위 속성은 Color
(목록), RelatedItems
(목록), Pictures
(맵) 및 ProductReviews
(맵)를 제외하고 모두 스칼라입니다.
중첩 속성
속성이 다른 속성 내부에 포함되어 있는 경우 이러한 속성을 중첩이라고 합니다. 중첩 속성에 액세스하려면 역참조 연산자를 사용합니다.
-
[n]
- 목록 요소의 경우 -
.
(점) - 맵 요소의 경우
목록 요소에 액세스
목록 요소의 역참조 연산자는 [N]이며, 여기에서 n은 요소 번호입니다. 목록 요소는 0부터 시작되므로 [0]은 목록의 첫 번째 요소, [1]은 두 번째 요소를 나타냅니다. 여기 몇 가지 예가 있습니다:
-
MyList[0]
-
AnotherList[12]
-
ThisList[5][11]
ThisList[5]
요소 자체는 하나의 중첩된 목록입니다. 그러므로 ThisList[5][11]
은 해당 목록의 열두 번째 요소를 나타냅니다.
대괄호 내부의 숫자는 음수가 아닌 정수여야 합니다. 그러므로 다음 표현식은 유효하지 않습니다.
-
MyList[-1]
-
MyList[0.4]
맵 요소에 액세스
맵 요소의 역참조 연산자는 .(점)입니다. 점을 맵 내에서 요소 간 구분 기호로 사용합니다.
-
MyMap.nestedField
-
MyMap.nestedField.deeplyNestedField
문서 경로
표현식에서 문서 경로를 사용하여 DynamoDB에 속성을 찾을 위치를 알려 줍니다. 최상의 속성의 경우, 문서 경로는 단순히 속성 이름입니다. 중첩된 속성의 경우 역참조 연산자를 사용하여 문서 경로를 생성합니다.
문서 경로의 몇 가지 예는 다음과 같습니다. DynamoDB에서 표현식 사용 시 항목 속성 참조에 표시된 항목을 참조하십시오.
-
최상위 스칼라 속성.
Description
-
최상위 목록 속성. (이 속성은 일부 요소만이 아닌 전체 목록을 반환합니다.)
RelatedItems
-
RelatedItems
목록의 세 번째 요소입니다. 목록 요소는 0부터 시작합니다.RelatedItems[2]
-
제품의 전면도 그림입니다.
Pictures.FrontView
-
모든 별 5개 리뷰입니다.
ProductReviews.FiveStar
-
별 5개 리뷰 중 첫 번째 리뷰입니다.
ProductReviews.FiveStar[0]
참고
문서 경로의 최대 깊이는 32입니다. 따라서 경로의 역참조 연산자 수는 이 제한을 초과할 수 없습니다.
다음 요구 사항을 충족하는 한 문서 경로에 모든 속성 이름을 사용할 수 있습니다.
-
속성 이름은 파운드 기호(#)로 시작해야 합니다.
-
첫 번째 문자는
a-z
,A-Z
또는0-9
여야 합니다. -
두 번째 문자(있는 경우)는
a-z
또는A-Z
여야 합니다.
참고
속성 이름이 이 요구 사항을 충족하지 않으면 표현식 속성 이름을 자리 표시자로 정의해야 합니다.
자세한 내용은 DynamoDB의 표현식 속성 이름(별칭) 단원을 참조하십시오.