Amazon dynamodb 提供的键元素与schema-updateItem不匹配
发生的事情是代码不起作用。它给了我这个错误: 消息:“提供的键元素与架构不匹配” 这是表格详细信息中的内容: 主分区键-日期(编号) 主排序键-Amazon dynamodb 提供的键元素与schema-updateItem不匹配,amazon-dynamodb,Amazon Dynamodb,发生的事情是代码不起作用。它给了我这个错误: 消息:“提供的键元素与架构不匹配” 这是表格详细信息中的内容: 主分区键-日期(编号) 主排序键- 问题是您的参数中有一个复合键(date+accountid),但您的表只配置了一个分区键 使用以下选项之一: var params = { ExpressionAttributeNames: { "#AT": "date" },
问题是您的参数中有一个复合键(date+accountid),但您的表只配置了一个分区键 使用以下选项之一:
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);
}
});
或者,如果您希望使用
accountid
作为排序键,则需要重新生成表。n.b.我还从中更正了属性名称-因为我识别了参数。这意味着data.Items没有定义为使用参数的数组。
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);
}
});