无法使用 UpdateItem 从列表中删除元素

And*_*oup 2 node.js amazon-dynamodb

我正在尝试LISTITEMDynamoDB 表中的中删除一个元素。我相信我有正确的设置,但似乎无法传递整数。

var params = {
  TableName: DB_TABLE_NAME,
  Key:{
    "Key": KEY_VALUE
  },
  UpdateExpression: "REMOVE List[:n]",
  ExpressionAttributeValues: {
    ":n": 1
  },
  ReturnValues:"UPDATED_NEW"
};
Run Code Online (Sandbox Code Playgroud)

然后我运行 UpdateItem 函数,该函数用于其他用例。

db.update(params, (err, data) => {
  console.log(data);
});
Run Code Online (Sandbox Code Playgroud)

返回以下错误

"message": "Invalid UpdateExpression: Syntax error; token: \":n\", near: \"[:n]\"",
Run Code Online (Sandbox Code Playgroud)

当我删除ExpressionAttributeValues并替换:n为值 1(引用现有 List 元素)时,它成功执行。

我显然在这里遗漏了一些东西,任何帮助将不胜感激,谢谢!

And*_*oup 7

尽管(至少对于 node.js)SDK 不接受 AttributeValues,但这可以通过将变量添加到 UpdateExpression 字符串中来解决。

UpdateExpression: "REMOVE List[" + listNumber + "]",
Run Code Online (Sandbox Code Playgroud)