DynamoDB BatchGetItem:提供的密钥不匹配?

时间:2019-04-11 19:01:22

标签: javascript amazon-dynamodb

因此,我一直在尝试使用 batchGetItem

从DynamoDB表中检索代码列表。

我尝试使用标准方法来完成任务,该方法主要使用AWS文档提供的基本代码,如下所示:

let AWS = require('aws-sdk');

AWS.config.update({
  "region": "us-west-2",
  "endpoint": "https://dynamodb.us-west-2.amazonaws.com",
  "accessKeyId": "my acess key here",
  "secretAccessKey": "my secret access key"
});

var dynamoClient = new AWS.DynamoDB.DocumentClient();    
var params = {
    "RequestItems": {
        "questions_and_answers": {
            "Keys": [
                {
                "codcategory": "10"
                }
            ]
        }
    }
}

var dynamoBatchGetPromise = dynamoClient.batchGetItem(params).promise();
dynamoBatchGetPromise.then(function (data) {
   console.log("data resp: " + JSON.stringify(data));
});

...这就是我得到的输出:

“(节点:3744)UnhandledPromiseRejectionWarning:ValidationException:提供的键元素与架构不匹配”

好吧,因为“ codcategory”是表“ questions_and_answers”的实际主分区键,并且我想从该表中检索所有具有codcategory = 10的记录,所以我必须询问;

我的代码怎么了?

任何帮助,我都会感激不尽。预先感谢。

1 个答案:

答案 0 :(得分:0)

在仔细阅读了文档之后,看来问题是我必须同时提供分区键和哈希键作为参数,就像这样:

Keys: [                
{
codcategory: {N:"10"},
cod: {N:"2000"}
}
]

是的,就是这样。希望这可以在某个时候帮助需要帮助的人。