首页 > 解决方案 > 如何扫描表中的所有项目并删除它们?

问题描述

我正在尝试删除 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);
        }
      });

谢谢 !

标签: node.jsaws-lambdaamazon-dynamodb

解决方案


如果您的目标是删除表中的所有数据,则有一个更有效、更便宜的选择:删除并重新创建表。

一个一个地删除很多项会花费很长时间,并且会花费很多(每次删除都算作1个WCU)。


推荐阅读