【发布时间】:2021-06-06 16:13:13
【问题描述】:
我正在使用 AWS dynamodb 中的 api“updateItem”来更新项目。主要功能将是添加新项目或删除一个现有项目。但是,它们都不适用于以下代码,ADD 的错误消息是“”ValidationException:Invalid UpdateExpression:运算符或函数的操作数类型不正确;运算符或函数:list_append,操作数类型:S。 这是我的代码:
const data = "newData";
async function updatedb(data) {
return new Promise((resolve, reject) =>{
var params = {
Key: {
"lists": {
S: data
}
},
TableName: "old_lists_DB",
UpdateExpression: "SET #L = list_append(:v,#L) ",
ExpressionAttributeNames: {
"#L": "lists",
},
ExpressionAttributeValues: {
":v": {
S: data
}
}
};
dynamodb.updateItem(params, function(err,data) {
if(err){
reject(err);
}else{
resolve(data);
}
});
});
}
old_lists_DB 的架构非常简单,只有一个属性:lists,值是一组字符串。 例如:
{
{"lists" : "a"},
{"lists" : "b"},
{"lists" : "c"},
}
【问题讨论】:
-
仅供参考,无需手动创建和解决承诺。只需使用
return dynamodb.updateItem(params).promise()。
标签: node.js amazon-web-services amazon-dynamodb