因为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匹配。
我在这里错过了什么/做错了什么?
答案 0 :(得分:2)
我们假设此处$item_value
扩展为foobar
。过滤器表达式要查找的是item_key_2
和foobar
属性具有相同值的项:
{
"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`"}}"
:(