2016-05-13 56 views
2

我试图从DynamoDB表中的ITEM中删除LIST元素。我相信我有正确的设置,但似乎无法传递一个整数。无法使用UpdateItem从列表中删除元素

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(引用的现有列表元素),它成功执行。

我很明显错过了一些东西,任何帮助将不胜感激,谢谢!

回答

3

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

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