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