我创建了简单的表(用户名,密码),密钥是用户名。 该表包含一个项目: { “username”:“someuser”, “密码”:“猫” }
现在,我想从“猫”更新为“狗”
dynamodb.updateItem({
TableName: "users",
Key: { "username": { "S" : "someuser" } },
UpdateExpression : "SET password =:pass",
ExpressionAttributeValues : { ":pass" : { "S" : "dog" } }
}, function(err, data) {
if (err)
console.log(JSON.stringify(err, null, 2));
else
console.log(JSON.stringify(data, null, 2));
});
但是我收到了错误:
{
"message": "Invalid attribute value type",
"code": "ValidationException",
"time": "2015-11-14T20:22:36.381Z",
"statusCode": 400,
"retryable": false
}
答案 0 :(得分:0)
最后我发现dynamodb javascript shell与在AWS上运行的dynamodb不同。
上面的错误不会出现在真正的dynamodb上。
编辑: 例如,以下工作:
var params = {
TableName: config.SCRIPTTABLE,
Key: { id : { S: script.id }},
UpdateExpression: "SET title = :title, description = :desc, code = :code, tags = :tags, pub = :pub",
ExpressionAttributeValues: {
":title": { S: script.title },
":desc" : { S: script.description },
":code" : { S: script.code },
":tags" : { SS: script.tags },
":pub" : { BOOL: script.pub }
},
ReturnValues: "ALL_NEW"
};
dynamodb.updateItem(params, function(err, data) {
if (err) {
console.log(JSON.stringify(err));
context.fail('INTERNAL_SERVER_ERROR');
} else {
context.succeed();
}
});