表达式属性值
如果需要将属性与值进行比较,请将表达式属性值定义为占位符。Amazon DynamoDB 中的表达式属性值是您想要比较的实际值的替代品,这些值可能直到运行时才知道。表达式属性值必须以冒号 (:
) 开头,后跟一个或多个字母数字字符。
例如,假设您希望返回提供 Black
且成本500
或更少的所有 ProductCatalog
项目。您可以使用 Scan
操作与过滤器表达式相同,如此 Amazon Command Line Interface(Amazon CLI) 示例。
aws dynamodb scan \ --table-name ProductCatalog \ --filter-expression "contains(Color, :c) and Price <= :p" \ --expression-attribute-values file://values.json
--expression-attribute-values
的参数存储在文件 values.json
中。
{ ":c": { "S": "Black" }, ":p": { "N": "500" } }
Scan
操作读取表中的每个项目。所以你应该避免将 Scan
与大的表格一起使用。
过滤器表达式将应用于 Scan
结果,并且与过滤器表达式不匹配的项目将被丢弃。
如果您定义表达式属性值,则该值在整个表达式中的使用方式必须一致。另外,您不能忽略 :
符号。
表达式属性值与关键条件表达式、条件表达式、更新表达式和筛选表达式一起使用。
有关编程语言特定的代码示例,请参阅 DynamoDB 和 Amazon SDK 入门。