我继承了一个包含三列的DynamoDB表,其中一列是键
Id - String - hashKey
ProductID - String
UsageCount - number
我想运行一个逻辑上等同于以下
的查询/扫描 select ProductID, UsageCount where ProductID='abcd'
虽然ProductID不是任何类型的密钥,但我可以使用AmazonDynamoDB控制台并添加过滤器
得到我想要的东西。所以我假设我应该能够用代码做同样的事情(尽管每个人都在谈论为此目的使用散列和范围键)
我正在尝试用RUBY做同样的事情,但没有得到结果......
resp = $dynamodb.scan(
:table_name => PRODUCTTABLE,
:projection_expression => "Id, TenantId, SeatCount",
:filter_expression => 'TenantId = abcd'
)
有人可以用正确的语法帮助我吗?我尝试了许多变体,除了上面的语法不会抛出异常但返回零行以外都抛出异常。所以我认为它必须接近:)(或许不是)
答案 0 :(得分:2)
您必须同时使用filter_expression但将其设为'TenantId = :val'
然后使用:val
和expression_attribute_names
expression_attribute_values
即使它是用Java编写的,this doc也可以帮助您解决问题