Amazon dynamodb 更新dynamodb中的项时出错

Amazon dynamodb 更新dynamodb中的项时出错,amazon-dynamodb,Amazon Dynamodb,我已经创建了简单的表(用户名,密码),关键是用户名。 该表包含一项: { “用户名”:“someuser”, “密码”:“cat” } 现在,我想从“猫”升级到“狗” 但我有一个错误: { "message": "Invalid attribute value type", "code": "ValidationException", "time": "2015-11-14T20:22:36.381Z", "statusCode": 400, "retryable": fal

我已经创建了简单的表(用户名,密码),关键是用户名。 该表包含一项: { “用户名”:“someuser”, “密码”:“cat” }

现在,我想从“猫”升级到“狗”

但我有一个错误:

{
  "message": "Invalid attribute value type",
  "code": "ValidationException",
  "time": "2015-11-14T20:22:36.381Z",
  "statusCode": 400,
  "retryable": false
}

最后,我发现dynamodbjavascript 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();
            }
        });

最后,我发现dynamodbjavascript 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();
            }
        });

那么你的属性类型是什么?你的属性类型是什么?你能详细说明一下区别是什么,以及你是如何解决的吗?我遇到了一个类似的情况。如果我没记错的话,这些区别与json键使用引号有关。我在上面的原始答案中添加了工作代码的示例。您能详细说明这些差异是什么,以及您是如何修复的吗?我遇到了一个类似的情况。如果我没记错的话,这些区别与json键使用引号有关。我在上面的原始答案中添加了工作代码的示例。