项目"/>
从不进行扫描的表中获取所有项目
目前,我具有使用SCAN选项从DynamoDB表中获取所有项目的功能。这是一种昂贵的方法,我更喜欢使用QUERY选项。但是,查看文档似乎不是一种使用QUERY选项检索所有项目的简单方法-它需要某种条件。
示例
var params = {
TableName : "Movies",
KeyConditionExpression: "#yr = :yyyy",
ExpressionAttributeNames:{
"#yr": "year"
},
ExpressionAttributeValues: {
":yyyy": 1985
}
};
docClient.query(params, function(err, data) {
if (err) {
console.error("Unable to query. Error:", JSON.stringify(err, null, 2));
} else {
console.log("Query succeeded.");
data.Items.forEach(function(item) {
console.log(" -", item.year + ": " + item.title);
});
}
});
期望
var params = {
TableName : "Movies"
};
docClient.query(params, function(err, data) {
if (err) {
console.error("Unable to query. Error:", JSON.stringify(err, null, 2));
} else {
console.log("Query succeeded.");
data.Items.forEach(function(item) {
console.log(" -", item.year + ": " + item.title);
});
}
});
是否可以使用QUERY从表中检索所有数据?我曾考虑过使用BEGINS_WITH等,但是所有的主键都是不同的/随机的,并且不以特定的字符或短语开头。
回答如下:通过查询的唯一方法是分别遍历每个分区键。
我建议您查看围绕您的查询建立的二级索引,这样可以提高效率:https://docs.aws.amazon/amazondynamodb/latest/developerguide/SecondaryIndexes.html
更多推荐
从不进行扫描的表中获取所有项目
发布评论