我正试图从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 + "]",

08-25 10:56