如何扫描表中的所有项目并将其删除?

时间:2019-02-15 11:03:39

标签: node.js aws-lambda amazon-dynamodb

我正在尝试删除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 个答案:

答案 0 :(得分:1)

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

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