密钥上的条件数是带有节点js的无效dynamo db

时间:2017-09-13 07:27:51

标签: node.js amazon-dynamodb

docClient.update({
    TableName: 'patient',
    Key: {
        "patientId": "TIGERPAT0001"
    },
    UpdateExpression: "set title = :x, name = :y",
    ExpressionAttributeNames: {
        "#name": "name"
    },
    ExpressionAttributeValues: {
        ":x": 'title value abc',
        ":y": 'name value xyz'
    }
}, function (err, data) {
    if (err) {
        json.status = '0';
        json.result = { 'error': 'Unable to Edit Patient : ' + JSON.stringify(err) };
        res.send(json);
    } else {
        json.status = '1';
        json.result = { 'sucess': 'Patient Edited Successfully :' };
        res.send(json);
    }
});

当使用上面的代码时,我得到了res:

无法编辑患者错误:{"message":"The number of conditions on the keys is invalid","code":"ValidationException","time":"2017-09-13T07:12:56.608Z","requestId":"a01c707c-86b4-41a5-a1c5-92b9ea07c026","statusCode":400,"retryable":false,"retryDelay":6.368631970657979}

我错过了什么/任何错误?

1 个答案:

答案 0 :(得分:3)

我认为您在创建表时使用了多个键。

如果您在创建表时使用了n个键,那么此处还需要传递n个键:

例如:

docClient.update({
    TableName: 'patient',
    Key: {
        "patientId": "TIGERPAT0001",
        "id1": "id1value",
        "id2": "id2value"
    },
    UpdateExpression: "set title = :x, name = :y",
    ExpressionAttributeNames: {
        "#name": "name"
    },
    ExpressionAttributeValues: {
        ":x": 'title value abc',
        ":y": 'name value xyz'
    }
}, function (err, data) {
    if (err) {
        json.status = '0';
        json.result = { 'error': 'Unable to Edit Patient : ' + JSON.stringify(err) };
        res.send(json);
    } else {
        json.status = '1';
        json.result = { 'sucess': 'Patient Edited Successfully :' };
        res.send(json);
    }
});

请用您的密钥替换id1id2