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

时间:2017-09-20 16:44:50

标签: amazon-dynamodb amazon-dynamodb-streams

我想删除表中的特定字符串匹配项。例如,Table1Foo123Bar列中有Foo345Barname

我想在name列中删除两个rec。

2 个答案:

答案 0 :(得分:0)

以下是我如何解决它,

您需要使用条件扫描表格并使用批量删除或删除项目删除它们。

扫描和查询示例:

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

答案 1 :(得分:0)

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

如果名称列是主键,则可以使用BatchWriteItem直接删除多个项目。如果您使用DynamoDB Document Client,则可以使用batchWrite method删除表格中的多个项目,如下所示。

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);
});

如果名称列不是私钥,而是索引中的排序键或可查询键,则需要通过查找主键来查询并删除这些项并使用deleteItem method逐个对键进行排序。

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

使用DynamoDB Document Client,您可以轻松地使用所需参数调用scanquery