使用Ruby查询AWS DynamoDB

时间:2015-11-10 20:55:46

标签: ruby-on-rails-4 amazon-dynamodb aws-sdk

我继承了一个包含三列的DynamoDB表,其中一列是键

 Id - String - hashKey
 ProductID - String
 UsageCount - number

我想运行一个逻辑上等同于以下

的查询/扫描
 select ProductID, UsageCount where ProductID='abcd'

虽然ProductID不是任何类型的密钥,但我可以使用AmazonDynamoDB控制台并添加过滤器

console filter

得到我想要的东西。所以我假设我应该能够用代码做同样的事情(尽管每个人都在谈论为此目的使用散列和范围键)

我正在尝试用RUBY做同样的事情,但没有得到结果......

 resp = $dynamodb.scan(
       :table_name => PRODUCTTABLE,
       :projection_expression => "Id, TenantId, SeatCount",
          :filter_expression => 'TenantId = abcd'
                       )

有人可以用正确的语法帮助我吗?我尝试了许多变体,除了上面的语法不会抛出异常但返回零行以外都抛出异常。所以我认为它必须接近:)(或许不是)

1 个答案:

答案 0 :(得分:2)

您必须同时使用filter_expression但将其设为'TenantId = :val'

然后使用:valexpression_attribute_names

传递expression_attribute_values

即使它是用Java编写的,this doc也可以帮助您解决问题