如何删除 DynamoDB table 中包含特定字符串匹配项的项目?

How to delete items containing specific string matching in DynamoDB table?

我想删除 table 中的特定字符串匹配项。例如,Table1name 列中有 Foo123BarFoo345Bar

我想删除 name 列中的两个记录。

我是这样解决的,

您需要用条件扫描table,并用批量删除或删除项删除。

扫码查询示例:

http://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/dynamodb-example-query-scan.html

批量删除示例:

http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#batchWriteItem-property

根据名称列是主键、排序键还是属性,您可以使用不同的方法来删除项目。

如果name列是主键,可以直接删除多个项使用BatchWriteItem. If you use DynamoDB Document Client, you can use the batchWrite method删除table中的多个项如下图.

var params = {
  RequestItems: {
    'Table1': [
      {
        DeleteRequest: {
          Key: { name: 'Foo123Bar' }
        }
      },
      {
        DeleteRequest: {
          Key: { name: 'Foo345Bar' }
        }
      }
    ]
  }
};

var documentClient = new AWS.DynamoDB.DocumentClient();

documentClient.batchWrite(params, function(err, data) {
  if (err) console.log(err);
  else console.log(data);
});

如果name列不是私钥而是索引中的排序键或可查询键,则需要查询并删除 通过使用 deleteItem method.

逐一找到它们的主键和排序键

如果name列是普通属性,需要扫描删除而不是查询。

使用带有所需参数的 DynamoDB Document Client you can call the scan or query 很容易。