Amazon dynamodb Dynamodb batchget给出验证错误

Amazon dynamodb Dynamodb batchget给出验证错误,amazon-dynamodb,Amazon Dynamodb,我的DynamoDb表被定义为具有主分区和排序键的表 表名用户 主分区键电话号码(字符串) 主排序键国家/地区(字符串) 我正在尝试使用以下参数设置在此表上执行batchget var dynamoQueryParams = { RequestItems: { 'user': { Keys: [ {"phone_num": {"S":"+14085551212"}, "Country": {"S":"USA"}},

我的DynamoDb表被定义为具有主分区和排序键的表

表名用户 主分区键电话号码(字符串) 主排序键国家/地区(字符串)

我正在尝试使用以下参数设置在此表上执行batchget

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:提供的键元素与架构不匹配”

我不太清楚我在这里做错了什么。我尝试过各种各样的组合,有引号和引号,有国家/地区键和没有国家/地区键,但我总是遇到同样的错误,不确定我需要做什么

谢谢你给我指点我这里可能缺少的东西

谢谢,
Sanjay.

只需提供参数上没有数据类型“S”的值即可。DimaDoB会自动将其视为字符串。

var params = {
    "RequestItems" : {
        "user" : {
            "Keys" : [ {
                "phone_num" : "+14085551212",
                "Country" : "USA"
            },
            {
                "phone_num" : "+14085551313",
                "Country" : "USA"
            }
             ]
        }
    }

};

你试过不用引号吗?就像这样:

Keys: [
{"phone_num": {S:"+14085551212"}, "Country": {S:"USA"}},
{"phone_num": {S:"+14085551313"}, "Country": {S:"USA"}}
],

如果键是字符串类型,我可以向您保证它会工作。

您能否提供一个示例,说明如何尝试调用batchget?谢谢@ConferenceQuest。这些文件似乎表明我需要“S”。带他们出去工作。谢谢