如何使用DynamoDB批量删除?

我收到“所提供的关键元素与模式不匹配”​​的错误。 uuid是我的主分区键。 我也有version的主要sorting键。 我想我可以使用batchWrite ( 文档 )来删除具有相同的uuid所有项目。

我的ES6代码如下:

 delete(uuid) { const promise = new Promise(); const params = { RequestItems: { [this.TABLE]: [ { DeleteRequest: { Key: { uuid: uuid } } } ] } }; // this._client references the DocumentClient this._client.batchWrite(params, function(err, data) { if (err) { // this gets hit with error console.log(err); return promise.reject(err); } console.log(result); return promise.resolve(result); }); return promise; } 

不知道为什么它是主要的关键错误。 当我search某些不是关键的东西的时候,我已经看到有关需要其他索引的post。 但是我不认为这是事实。

这是批量写入删除请求示例。 此代码已经过testing,工作正常。 如果您根据您的要求更改此代码,则应该可以工作。

表格定义: –

袋子 – 表名称

袋 – 哈希键

“Bag”表中没有分区键

批量编写代码: –

 var AWS = require("aws-sdk"); AWS.config.update({ region : "us-west-2", endpoint : "http://localhost:8000" }); var documentclient = new AWS.DynamoDB.DocumentClient(); var itemsArray = []; var item1 = { DeleteRequest : { Key : { 'bag' : 'b1' } } }; itemsArray.push(item1); var item2 = { DeleteRequest : { Key : { 'bag' : 'b2' } } }; itemsArray.push(item2); var params = { RequestItems : { 'Bag' : itemsArray } }; documentclient.batchWrite(params, function(err, data) { if (err) { console.log('Batch delete unsuccessful ...'); console.log(err, err.stack); // an error occurred } else { console.log('Batch delete successful ...'); console.log(data); // successful response } }); 

输出: –

 Batch delete successful ... { UnprocessedItems: {} }