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

时间:2016-05-13 06:06:45

标签: node.js amazon-dynamodb

我正在尝试从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元素)时,它会成功执行。

我显然在这里遗漏了一些东西,非常感谢任何帮助,谢谢!

1 个答案:

答案 0 :(得分:4)

虽然(至少对于node.js)SDK不接受AttributeValues,但可以通过将该变量添加到UpdateExpression字符串来解决此问题。

UpdateExpression: "REMOVE List[" + listNumber + "]",