我正试图从dynamodb表的LIST
中删除一个ITEM
元素。我相信我的设置是正确的,但似乎不能传递整数。
var params = {
TableName: DB_TABLE_NAME,
Key:{
"Key": KEY_VALUE
},
UpdateExpression: "REMOVE List[:n]",
ExpressionAttributeValues: {
":n": 1
},
ReturnValues:"UPDATED_NEW"
};
然后运行updatetem函数,用于其他用例。
db.update(params, (err, data) => {
console.log(data);
});
返回以下错误
"message": "Invalid UpdateExpression: Syntax error; token: \":n\", near: \"[:n]\"",
当我移除
ExpressionAttributeValues
并将:n
替换为值1(它引用现有的列表元素)时,它将成功执行。很明显我在这里遗漏了一些东西,任何帮助都将不胜感激,谢谢!
最佳答案
尽管(至少对于node.js)sdk不接受attributeValue,但可以通过将变量添加到updateexpression字符串中来解决此问题。
UpdateExpression: "REMOVE List[" + listNumber + "]",