如何扫描表中的所有项并删除它们?
我正在尝试删除DynamoDB表的所有项目。所以我先用函数getData()扫描它们,然后我想用函数deleteItem()逐个删除它们,但我不知道如何链接这两个函数。
您是否知道如何从getDate()中删除所有项目?我这样做了,但我不确定它是否正确。
function deleteItem(item){
let deleteParam = {
TableName : process.env.TABLE_NAME,
Key : {
"ASSETNAME" : item.ASSETNAME
}
};
documentClient.delete(deleteParam, function(err, data) {
if (err) {
console.error("Fail"+err);
}
});
}
function getData(){
let scanningParameters = {
TableName : process.env.TABLE_NAME
};
documentClient.scan(scanningParameters, function(err,data){
if(err){
callback(err, null);
}else{
callback(null,data);
}
});
谢谢 !
回答如下:如果你的目标是删除表中的所有数据,那么有一个更有效,更便宜的选择:删除并重新创建表。
逐个删除许多项目将花费很长时间并且将花费很多(每次删除计为1个WCU)。