amazon-web-services - AWS:当我尝试更新 dynamodb 中的项目时,出现以下错误提供的关键元素与架构不匹配
问题描述
当我尝试更新 dynamodb 中的项目时,出现以下错误:
var docClient = new AWS.DynamoDB.DocumentClient();
function updateItem() {
var table = "Bicycle";
var params = {
TableName:table,
Key:{
warrantyDate: "2018/10/23",
warrantyStatus: "Active"
},
UpdateExpression: "set warrantyStatus = :r",
ExpressionAttributeValues:{
":r":"Inactive"
},
ReturnValues:"UPDATED_NEW"
};
docClient.update(params, function(err, data) {
if (err) {
alert("Unable to update item");
alert(err);
} else {
alert("UpdateItem succeeded");
}
});
}
当我调用这个函数时,我收到了这个异常:
ValidationException:提供的关键元素与架构不匹配
我怎样才能解决这个问题?
解决方案
问题是您的 KEY 属性值与 dynamodb 表上的主分区键不匹配。
更新项目时,您需要指定映射到 dynamodb 表上的主键的单个键。Key 字段中应该只有一个属性。您正试图找到一个既是warrantyDate又是warrantyStatus的键。确保您指定了映射到您的 dynamodb 配置的正确键。
如果您尝试更新多个项目,则需要使用另一个函数,因为doClient.update()仅更新与表中主索引的键匹配的单行。
推荐阅读
- python - 为 Python 逻辑创建 C++ Qt Gui
- c - 我无法解决更改字符的问题
- c# - Calling two methods of the same object in C# - chain like syntax
- java - 变量已在可样式化的类 android 中定义
- android - Android:以编程方式请求互联网许可
- windows - Installing Docker on windows 10 Home, can it be done?
- jquery - 如何使用下拉框更改数据表中的数据
- r - Implementing operator
- javascript - Angular 6从谷歌地图中删除所有标记
- python - 预期的二维数组,但得到了标量数组