Amazon DynamoDB
開発者ガイド (API バージョン 2012-08-10)

項目属性の指定

このセクションでは、Amazon DynamoDB で式の項目属性を参照する方法を説明します。複数のリストやマップ内で深くネストされている場合でも、属性を使用できます。

サンプル項目: ProductCatalog

以下は、ProductCatalog テーブルの項目を示しています。(このテーブルについては、「サンプルテーブルとデータ」で説明されています)。

{ "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 です。ソートキーはありません。

  • ほとんどの属性に、StringNumberBooleanNull などのスカラーデータ型があります。

  • 1 つの属性 (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] はリスト内の最初の要素、[1] は 2 番目の要素、という順番で表されます。次に例を示します。

  • MyList[0]

  • AnotherList[12]

  • ThisList[5][11]

要素 ThisList[5] は、それ自体がネストされたリストです。したがって、ThisList[5][11] は、そのリストの 12 番目の要素を参照します。

角括弧内の数は、負以外の整数である必要があります。そのため、次の式は無効です。

  • MyList[-1]

  • MyList[0.4]

マップ要素へのアクセス

マップ要素の間接参照演算子は . (ドット) です。マップの要素間の区切り文字として、ドットを使用します。

  • MyMap.nestedField

  • MyMap.nestedField.deeplyNestedField

ドキュメントパス

式では、ドキュメントパスを使用して、属性の場所を DynamoDB に伝えます。最上位属性の場合、ドキュメントパスは単純に属性名になります。ネストされた属性の場合は、間接参照演算子を使用してドキュメントパスを構築します。

ドキュメントパスのいくつかの例を次に示します。(項目属性の指定 に示された項目を参照してください)

  • 最上位のスカラー属性。

    ProductDescription

  • 最上位のリスト属性。(これはいくつかの要素だけではなく、すべてを示すリストを返します)

    RelatedItems

  • RelatedItems リストの 3 番目の要素(このリスト要素はゼロベースであることに注意してください)。

    RelatedItems[2]

  • 製品の正面の写真。

    Pictures.FrontView

  • すべての 5 つ星の評価。

    ProductReviews.FiveStar

  • 最初の 5 つ星の評価。

    ProductReviews.FiveStar[0]

注記

ドキュメントパスの最大深度は 32 です。したがって、任意のパスの間接参照演算子の数はこの制限を超えることはできません。

最初の文字が a-z または A-Z であり、2 番目の文字(ある場合)が a-zA-Z、または 0-9 である場合は、ドキュメントパスで任意の属性値を使用できます。属性名がこの要件を満たさない場合は、式の属性名をプレースホルダーとして定義する必要があります。詳細については、「式の属性名」を参照してください。