我收到错误消息“提供的键元素与架构不匹配”。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”表中没有分区键
批量写入代码:-
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: {} }
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句