因此,我正在通过Powershell使用AWS CLI对DynamoDB表运行约500条记录的扫描,因为AWS Powershell工具不支持DDB查询/扫描操作。我可以在没有过滤器的情况下运行命令,并获取我的所有项目:
& 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`""
即使表中有几个值与$item_value匹配,这也会返回0的计数并且不返回任何项。
我在这里错过了什么/做错了什么?
假设这里的$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`"}}"
:(