如何使用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: {} }
- AWS – 在DynamoDB表中放置一个GeoPoing并对其进行查询 – node.js
- 如何使用AWS lambda和Dynamo db创build地理空间模块
- 你如何unit testing一个NodeJs的Lambda函数写入/读取dynamodb,并通过AWS API网关端点调用?
- 将ConditionalOperator设置为OR的DynamoDB扫描仍在执行AND
- 如何使用javascript aws-sdk支持dynamoDB中的事务?
- 按优先级和组值sorting结果,然后筛选结果
- 如何从DynamoDB列表中删除地图列表中的Map属性值?
- 使用全局二级索引筛选dynamoDB查询
- AWS Lambda查询二级索引