php使用列表从DynamoDB表中获取项目

时间:2017-05-19 06:48:08

标签: php amazon-web-services amazon-dynamodb

我有一个用户名数组,我想从DynamoDB表中检索包含数组中存在的用户名的所有项目。

例如:如果我的数组是:

["Foo","Bar"]

我的表是:

username | attribute1 | attribute2 Foo | Value 1 | Value 2 Min | value1 | value2 Bar | value 1 | value 2

然后我想得到第一项和最后一项。

我阅读了scan操作的文档,但它似乎不支持这种类型的请求。

我要求的是可能的,还是我将不得不迭代我的用户名数组并分别为每个数组检索项目?

2 个答案:

答案 0 :(得分:0)

如果用户名是表的哈希键,则可能需要使用Batch Get Item API

Batch Get Item API允许您从DynamoDB表中检索多个项目,前提是您在请求中提供的密钥是HashKey(+ RangeKey)或全局二级索引(HashKey(+ RangeKey))的一部分。

答案 1 :(得分:0)

这是批量获取示例。请注意,您可能需要执行批处理API,直到UnprocessedKeys为空。

Batch Get API

var params = {
    "RequestItems" : {
        "yourtablename" : {
            "Keys" : [ {
                "username" : "Foo"              
            },{
                "username" : "Bar"              
            } ],
        }
    },
    "ReturnConsumedCapacity" : "TOTAL"
};

docClient.batchGet(params, function(err, data) {
    if (err) {
        console.error("Unable to read item. Error JSON:", JSON.stringify(err,
                null, 2));
    } else {
        console.log("GetItem succeeded:", JSON.stringify(data, null, 2));
    }
});