DynamoDB条件表达式

时间:2018-05-19 20:03:51

标签: javascript amazon-dynamodb

我现在正在网站上工作,我正在尝试使用AWS SDK for Javascript向Dynamo发出有条件的更新请求但是,似乎请求忽略了我的条件和更新无论如何发生。我将在下面发布代码,但基本上我尝试做的是以下内容:

  • 如果新分数大于当前分数(在数据库中),请更新它,否则请将其保留为
// Update method
async function updateUserStats(dynamoParams) {

    return await dynamodb.update(dynamoParams, function (err, data) {
        if (err) {
            console.log("err: ", err);
            return "Unable to update item. Error JSON: " + JSON.stringify(err, null, 2);
        } else {
            console.log("Woot: ", data);
            return "Successfully updated user! " + JSON.stringify(data, null, 2);
        }
    });
}

// QueryParams with DynamoDB Update request
{ 
    TableName: 'UserStats',
    Key: { 
        username: 'Talia' 
    },
    UpdateExpression: 'SET Cindy.score = :score,Cindy.dateCompleted = :dateCompleted',
    ExpressionAttributeValues: { 
        ':score': 50, 
        ':dateCompleted': '2017-12-99' 
    },
    ReturnValues: 'UPDATED_NEW',
    ConditionalExpression: 'Cindy.score <= :score' 
}

// DynamoDB Table

Username | Cindy
  Talia    {score: 25, dateCompleted: "2018-05-14"}

1 个答案:

答案 0 :(得分:0)

根据documentation,请使用ConditionExpression,而不是ConditionalExpression