投影表达式
要从表中读取数据,您可以使用 GetItem
、Query
,或者 Scan
。默认情况下,Amazon DynamoDB 会返回所有项目属性。要仅获取部分属性而不是全部属性,请使用投影表达式。
投影表达式是用于标识所需属性的字符串。要检索单个属性,请指定其名称。对于多个属性,名称必须以逗号分隔。
下面是一些投影表达式的示例,基于 ProductCatalog
商品来自 使用表达式时指定项目属性:
-
单个顶级属性。
Title
-
三个顶级属性。DynamoDB 检索整个
Color
设置。Title, Price, Color
-
4 个顶级属性。DynamoDB 将返回
RelatedItems
和ProductReviews
。Title, Description, RelatedItems, ProductReviews
您可以在投影表达式中使用任意属性名称,前提是第一个字符是 a-z
或 A-Z
,第二个字符(如果有)是 a-z
、A-Z
或 0-9
。如果属性名称不满足此要求,则您必须将表达式属性名称定义为占位符。有关更多信息,请参阅 DynamoDB 中的表达式属性名称。
以下 Amazon 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 和 Amazon SDK 入门。