我的DynamoDb表定义为主分区和排序键
表名用户 主分区键phone_num(String) 主排序键国家(字符串)
我正在尝试使用以下参数设置
在此表上执行批处理var dynamoQueryParams = {
RequestItems: {
'user': {
Keys: [
{"phone_num": {"S":"+14085551212"}, "Country": {"S":"USA"}},
{"phone_num": {"S":"+14085551313"}, "Country": {"S":"USA"}}
],
AttributesToGet: [
'phone_num', 'Country', 'createdAt'
],
ConsistentRead: false
}
}
}
当我使用此参数设置运行我的代码时,我收到错误“ValidationException:提供的关键元素与架构不匹配”。
我不太清楚我在这里做错了什么。我尝试了各种组合的东西,有和没有引号,有和没有国家的关键,但我一直得到同样的错误,不知道我需要做什么。
感谢我在这里可能缺少的任何指示。
谢谢, 桑杰。
答案 0 :(得分:0)
只需在params上提供没有数据类型“S”的值。 DynamoDB会自动将其视为String。
var params = {
"RequestItems" : {
"user" : {
"Keys" : [ {
"phone_num" : "+14085551212",
"Country" : "USA"
},
{
"phone_num" : "+14085551313",
"Country" : "USA"
}
]
}
}
};
答案 1 :(得分:0)
您是否尝试过不使用引号?像这样:
Keys: [
{"phone_num": {S:"+14085551212"}, "Country": {S:"USA"}},
{"phone_num": {S:"+14085551313"}, "Country": {S:"USA"}}
],
如果键是String类型的,我可以保证它会起作用。