2016-05-13 33 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 + "]",