var params = {
ExpressionAttributeNames: {
"#AT": "date"
},
ExpressionAttributeValues: {
":t": {
BOOL: false
}
},
Key: {
"#AT": {
N: data.Items[i].date.N
},
"accountid": {
S: data.Items[i].accountid.S
}
},
ReturnValues: "ALL_NEW",
TableName: "tab",
UpdateExpression: "SET #AT = :t"
}
db.updateItem(params, function (err, data) {
if (err) console.log(err);
else {
//console.log(data);
}
});
正在发生的情况是代码不工作。它给出了这个错误:
消息:‘提供的键元素与架构不匹配’
以下是表中的详细信息:
主分区键-日期(数字)
主排序键-
发布于 2018-10-25 03:30:34
问题是您的params中有一个组合键(date + accountid),但是您的表只配置了一个分区键。
或者使用以下命令:
var params = {
ExpressionAttributeValues: {
":t": { BOOL: false }
},
ExpressionAttributeNames: {
"#at": "isRelevant",
},
Key: {
"date": { N: data.Items[i].date.N }
},
ReturnValues: "ALL_NEW",
TableName: "tab",
UpdateExpression: "SET #at = :t"
}
db.updateItem(params, function (err, data) {
if (err) {
console.log(err);
} else {
//console.log(data);
}
});
或者,如果希望使用accountid
作为排序关键字,则需要重新构建表。
https://stackoverflow.com/questions/52976540
复制相似问题