【发布时间】:2016-10-04 16:04:59
【问题描述】:
我正在尝试对 DynamoDB 表执行更新。
代码是(Node.js):
let params = {
TableName: Organizations.Table,
Key: {
'ID': event.ID
},
UpdateExpression: 'SET #OrgName = :org, #Description = :desc',
ExpressionAttributeNames: {
'#OrgName': 'OrgName',
'#Description': 'Description'
},
ExpressionAtributeValues: {
':org': event.OrgName,
':desc': event.Description
},
ReturnValues: 'UPDATED_NEW'
};
this.docClient.update(params, (err, data) => {
if (err) {
return cb(err);
}
return cb(null, data);
});
事件对象具有所需的所有属性。
执行后出现错误:
无效的UpdateExpression:一个表达式属性值用于 表达式未定义;属性值::desc
我只是按照 DynamoDB 文档中的示例进行操作。
当我更改设置值的顺序时,例如到SET #Description = :desc, #OrgName = :org 我得到的错误将是关于属性值:org。我还尝试显式指定表达式属性值,但没有帮助。
我不知道哪里出了问题。
有人可以帮我吗?
【问题讨论】:
-
您确定该事件已定义吗?在调用 docClient.update(..) 之前添加一个 console.log(JSON.stringify(params))
-
我认为下面 notionquest 的回答解决了这个问题。
标签: amazon-dynamodb