为什么batchGet没有在响应中显示任何记录?

时间:2017-10-24 14:36:35

标签: javascript amazon-web-services aws-sdk

概述:我正在使用aws-sdk for javascript从我的表中获取2条记录" testTable"。我也提供了各个键的值。

在线帮助:我已按照http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB/DocumentClient.html#batchGet-property

上的说明进行操作
var batchGetItem = function() {
    var params = {
        RequestItems: {
            "testTable": {
                Keys:[
                    {
                        "CaseID": "A1245",
                            "AssignedSupervisorName": "John"
                    },
                    {
                        "CaseID": "A1247",
                        "AssignedSupervisorName": "Bob"
                    }

                ]   
            }
        }
    };
    docClient.batchGet(params, function(err, data) {
        if (err) {
            document.getElementById('textarea').innerHTML = "Unable to read item: " + "\n" + JSON.stringify(err, undefined, 2);
        } else {
            document.getElementById('textarea').innerHTML = "GetItem succeeded: " + "\n" + JSON.stringify(data, undefined, 2);
            $scope.readData = data;
        }
    });
}

数据的值如下:

{
   "Responses": 
   { "testTable": []
   },
   "UnprocessedKeys" : {}
}

我期待在" testTable"中返回2条记录。但它只是返回一个空数组。

我哪里错了?

1 个答案:

答案 0 :(得分:0)

我怀疑你的桌子不是用你试图在JS代码中使用的密钥创建的。

keys中的params应该只包含您的dynamodb表的主键和排序键。您应该检查AssignedSupervisorName是否已设置为表格的排序键。