Amazon DynamoDB
开发人员指南 (API Version 2012-08-10)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

指定项目属性

本节介绍如何在表达式中引用项目属性。您可使用任何属性,即使它深度嵌套在多个列表和映射中也是如此。

示例项目:ProductCatalog

在本部分中,我们将考虑 ProductCatalog 表中的项目。(此表已在示例表和数据中介绍。) 这是项目的表示形式:

请注意以下几点:

  • 分区键的值 (Id) 为 123。没有排序键。

  • 大部分属性具有标量数据类型,例如字符串、数字、布尔值和空。

  • 一个属性 (Color) 是字符串集。

  • 以下属性是文档数据类型:

    • RelatedItems 列表。每个元素是一个相关产品的 Id

    • Pictures 的映射。每个元素是图片的一个简要说明,以及对应图像文件的 URL。

    • ProductReviews 的映射。每个元素表示一个评级以及与该评级对应的评论列表。最初,此映射将填充有五星和一星评论。

顶级属性

属性在未嵌套在其他属性内时称为顶级 属性。对于 ProductCatalog 项目,顶级属性包括:

  • Id

  • Title

  • Description

  • BicycleType

  • Brand

  • Price

  • Color

  • ProductCategory

  • InStock

  • QuantityOnHand

  • RelatedItems

  • Pictures

  • ProductReviews

  • Comment

  • Safety.Warning

Color (列表)、RelatedItems (列表)、Pictures (映射) 和 ProductReviews (映射) 之外的所有顶级属性都是标量。

嵌套属性

属性在嵌套在其他属性内时称为嵌套 属性。要访问嵌套属性,请使用解除引用运算符

  • [n] - 用于列表元素

  • . (dot) - 用于映射元素

访问列表元素

列表元素的解除引用运算符 是 [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 在何处找到属性。对于顶级属性,文档路径就是属性名称。对于嵌套属性,您可以使用解除引用运算符来构建文档路径。

下面是文档路径的一些示例。(请参阅指定项目属性中所示的项目。)

  • 顶级标量属性:

    ProductDescription

  • 顶级列表属性。(这将返回整个列表,而不仅仅是部分元素。)

    RelatedItems

  • RelatedItems 列表中的第三个元素。(请记住列表元素从零开始编号。)

    RelatedItems[2]

  • 产品的前视图。

    Pictures.FrontView

  • 全部五星评论。

    ProductReviews.FiveStar

  • 第一个五星评论。

    ProductReviews.FiveStar[0]

注意

文档路径的最大深度为 32。因此,路径中的解除引用运算符数量不能超过此限制。

您可以在文档路径中使用任意属性名称,前提是第一个字符是 a-zA-Z,第二个字符(如果存在)是 a-zA-Z0-9。如果属性名称不满足此要求,则需要将表达式属性名称定义为占位符。有关更多信息,请参阅 表达式属性名称