投射表達式 - Amazon DynamoDB

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

投射表達式

若要從資料表讀取資料,您可以使用 GetItemQueryScan 等操作。Amazon DynamoDB 會依預設傳回所有項目屬性。若只要取得部分而非全部屬性,請使用投射表達式。

投射表達式是識別所需屬性的字串。若要擷取單一屬性,請指定其名稱。若為多個屬性,則必須以逗號分隔名稱。

以下是根據 使用表達式時指定項目屬性 中的 ProductCatalog 項目而來的一些投射表達式範例:

  • 單一最上層屬性。

    Title

  • 三個最上層屬性。DynamoDB 會擷取整個 Color 設定。

    Title, Price, Color

  • 四個最上層屬性。DynamoDB 會傳回 RelatedItemsProductReviews 的整個內容。

    Title, Description, RelatedItems, ProductReviews

DynamoDB 有一份保留字與特殊字元清單。您可以在投射表達式中使用任何屬性名稱,只要第一個字元為 a-zA-Z,且第二個字元 (若有的話) 為 a-zA-Z0-9 即可。如果屬性名稱不符合此需求,您必須將運算式屬性名稱定義為預留位置。如需完整清單,請參閱 DynamoDB 中的保留字。此外,下列字元在 DynamoDB 中具有特殊意義:# (井字號) 與 : (冒號)。

雖然 DynamoDB 可讓您將這些保留字與特殊字元用於名稱,但建議您避免這樣做,因為每次在表達式中使用這些名稱,都必須定義預留位置變數。如需詳細資訊,請參閱 DynamoDB 中的表達式屬性名稱

下列 AWS CLI 範例顯示如何搭配作業使用投影GetItem運算式。此投射表達式會擷取最上層純量屬性 (Description)、清單中的第一個元素 (RelatedItems[0]),以及位於映射巢狀結構內的清單 (ProductReviews.FiveStar)。

aws dynamodb get-item \ --table-name ProductCatalog \ --key file://key.json \ --projection-expression "Description, RelatedItems[0], ProductReviews.FiveStar"

此範例會傳回下列 JSON。

{ "Item": { "Description": { "S": "123 description" }, "ProductReviews": { "M": { "FiveStar": { "L": [ { "S": "Excellent! Can't recommend it highly enough! Buy it!" }, { "S": "Do yourself a favor and buy this." } ] } } }, "RelatedItems": { "L": [ { "N": "341" } ] } } }

--key 的引數會存放在 key.json 檔案中。

{ "Id": { "N": "123" } }

如需程式設計語言特定的程式碼範例,請參閱開始使用 DynamoDB 和開發套件 AWS