gpt4 book ai didi

node.js - 如何使用 DynamoDB 批量删除?

转载 作者:IT老高 更新时间:2023-10-28 23:25:10 26 4
gpt4 key购买 nike

我收到“提供的关键元素与架构不匹配”的错误。 uuid 是我的主分区键。我还有一个 version 的主排序键。我想我可以使用 batchWrite (docs) 删除所有具有相同 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;
}

不知道为什么它在作为主要的键上出错。当我搜索一些不是关键的东西时,我曾经看过一些关于需要其他索引的帖子。但我不相信这里是这种情况。

最佳答案

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

表定义:-

包 - 表名

bag - 哈希键

“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: {} }

关于node.js - 如何使用 DynamoDB 批量删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38465146/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com