投影表达式 - Amazon DynamoDB
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

投影表达式

要从表中读取数据,您可以使用 GetItemQuery,或者 Scan。默认情况下,Amazon DynamoDB 会返回所有项目属性。要仅获取部分属性而不是全部属性,请使用投影表达式。

投影表达式是用于标识所需属性的字符串。要检索单个属性,请指定其名称。对于多个属性,名称必须以逗号分隔。

下面是一些投影表达式的示例,基于 ProductCatalog 商品来自 使用表达式时指定项目属性

  • 单个顶级属性。

    Title

  • 三个顶级属性。DynamoDB 检索整个 Color 设置。

    Title, Price, Color

  • 4 个顶级属性。DynamoDB 将返回 RelatedItemsProductReviews

    Title, Description, RelatedItems, ProductReviews

DynamoDB 具有保留字和特殊字符的列表。您可以在投影表达式中使用任意属性名称,前提是第一个字符是 a-zA-Z,第二个字符(如果有)是 a-zA-Z0-9。如果属性名称不符合此要求,则必须将表达式属性名称定义为占位符。有关完整列表,请参阅DynamoDB 中的保留字。此外,以下字符在 DynamoDB 中具有特殊含义:#(哈希)和 :(冒号)。

尽管 DynamoDB 允许您将这些保留字和特殊字符用于名称,但我们建议您避免这样做,因为在表达式中使用这些名称时必须定义占位符变量。有关更多信息,请参阅 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 入门