因此,我正在通过 Powershell 使用 AWS CLI 对包含约 500 条记录的 DynamoDB 表进行扫描,因为 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`"}}"
:(
关于powershell - DynamoDB API 过滤扫描不返回任何结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31170819/