DynamoDB API过滤扫描不返回任何结果

时间:2015-07-01 20:15:44

标签: powershell amazon-web-services amazon-dynamodb aws-cli

因为AWS Powershell工具不支持DDB查询/扫描操作,所以我使用AWS CLI通过Powershell运行扫描带有约500条记录的DynamoDB表。我可以运行没有过滤器的命令并获取我的所有项目:

& aws dynamodb scan --table-name "$table_name" --projection-expression "$item_key"

这将返回$ item_key的所有500多个值。

当我尝试过滤扫描时出现问题:

& aws dynamodb scan --table-name "$table_name" --projection-expression "$item_key" --filter-expression "item_key_2 = `"$item_value`""

这会返回0和没有项目的计数,即使表格中有多个值与$ item_value匹配。

我在这里错过了什么/做错了什么?

1 个答案:

答案 0 :(得分:2)

我们假设此处$item_value扩展为foobar。过滤器表达式要查找的是item_key_2foobar属性具有相同值的项:

{
  "item_key": "...",
  "item_key_2": "It's a match!",
  "foobar": "It's a match!"
}

要将item_key_2与文字值进行比较,您需要执行以下操作:

aws dynamodb scan \
    --table-name "$table_name" \
    --filter-expression "item_key_2 = :value" \
    --expression-attribute-values "{`":value`":{`"S`":`"$item_value`"}}"

:(