Ruby DynamoDB get_item查询失败,出现ValidationException

时间:2015-09-16 17:36:51

标签: ruby amazon-dynamodb

我尝试使用Ruby api查询DynamoDB。

query = {
    table_name : TABLE_NAME,
    key : {
        'foo:bar'.to_sym => {:s => 'value'}
    }  
}
x = @ddb_client.get_item(query) # ERROR on this line.

错误是。

The provided key element does not match the schema (Aws::DynamoDB::Errors::ValidationException)

我有一种感觉,这是因为表的哈希键名为foo:bar,其中包含冒号。因此,我无法使用key : { :index => "value"}

我为密钥尝试了以下值。

  • 'foo:bar'
  • "foo:bar"
  • :'foo:bar'
  • :"foo:bar"
  • "foo:bar".to_sym
  • 'foo:bar'.to_sym

仍然遇到同样的错误。

1 个答案:

答案 0 :(得分:1)

原来我错过了查询中的范围键。

我们的主索引由散列键和范围键组成。

将查询更改为。

query = {
    table_name : TABLE_NAME,
    key : {
        'foo:bar'.to_sym => {:s => 'value'}
        'range_key' => {:s => 'value'}
    }  
}

它按预期工作。