我尝试使用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
仍然遇到同样的错误。
答案 0 :(得分:1)
原来我错过了查询中的范围键。
我们的主索引由散列键和范围键组成。
将查询更改为。
query = {
table_name : TABLE_NAME,
key : {
'foo:bar'.to_sym => {:s => 'value'}
'range_key' => {:s => 'value'}
}
}
它按预期工作。