我有一个用户名数组,我想从DynamoDB表中检索包含数组中存在的用户名的所有项目。
例如:如果我的数组是:
["Foo","Bar"]
我的表是:
username | attribute1 | attribute2
Foo | Value 1 | Value 2
Min | value1 | value2
Bar | value 1 | value 2
然后我想得到第一项和最后一项。
我阅读了scan
操作的文档,但它似乎不支持这种类型的请求。
我要求的是可能的,还是我将不得不迭代我的用户名数组并分别为每个数组检索项目?
答案 0 :(得分:0)
如果用户名是表的哈希键,则可能需要使用Batch Get Item API。
Batch Get Item API允许您从DynamoDB表中检索多个项目,前提是您在请求中提供的密钥是HashKey(+ RangeKey)或全局二级索引(HashKey(+ RangeKey))的一部分。
答案 1 :(得分:0)
这是批量获取示例。请注意,您可能需要执行批处理API,直到UnprocessedKeys为空。
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));
}
});