2016-10-22 46 views
1

我正在使用dynamodb數據庫並嘗試通過node.js更新值。我創建了一個名爲counter的表格,以確定存儲在單獨表格中的學生的當前計數。我有更新字符串值的運氣,但嘗試更新此計數器值時遇到了麻煩。在過去的幾個小時裏,我嘗試了許多不同的代碼配置,無濟於事。任何幫助,將不勝感激。通過node.js增加存儲在dynamodb表中的值時遇到問題

function updateCount(operand) { 
var params = { 
    TableName : "counter", 
    Key:{ 
     "type" : { 
      "S" : "student" 
     } 
    }, 
    UpdateExpression : "SET pos = pos + :o", 
    ExpressionAttributeValues:{ 
     ":o": Number(operand) 
    }, 
    ReturnValues:"UPDATED_NEW" 
} 
docClient.update(params, function(err, data) { 
if (err) 
     console.log(err); 
    else { 
     console.log(data); 
     res.send(JSON.stringify(data, null, 2)); 
    } 
}); 

} 使用UpdateCount(1);

的當前錯誤表明這一點,但我有更多的: C:\用戶\ Ko_Kor \桌面\ CS 496 \作業#3>節點server.js 快車上http://localhost:8081開始;按Ctrl-C終止。 {[ValidationException:提供的鍵元素與模式不匹配] message:'提供的鍵元素與模式不匹配', code:'ValidationException', time:Fri Oct 21 2016 20:36:43 GMT -0700(太平洋夏令時), 的requestId: 'T8G9V8KF587THVK5OTGQ95TH9VVV4KQNSO5AEMVJF66Q9ASUAAJG', 的StatusCode:400, 重試:假的, retryDelay:0}

我一直在使用這種格式也嘗試:

ExpressionAttributeValues:{ 
    ":o": {"N": operand}  
}, 

回答

0

DynamoDB不親提供這種功能。 您可以嘗試使用DynamoDB原子計數器,但我會建議嘗試另一種方法,如字符串UUID

+0

我意識到Dynamodb不包含內置的自動增量功能,但肯定有一種方法來創建計數器。爲什麼每次發生特定事件時都無法更新表格中的數字? – zdevita

+0

它缺少一個功能,即自動增加屬性。 –

相關問題