Условное выражение DynamoDB - PullRequest
0 голосов
/ 19 мая 2018

Я сейчас работаю над веб-сайтом и пытаюсь сделать запрос условного обновления для Dynamo, используя AWS SDK для Javascript. Однако, похоже, что запрос игнорирует мои условные выражения, и обновление происходит независимо от того, что,Я опубликую код ниже, но по сути я пытаюсь сделать следующее:

  • Если новый счет больше текущего (в базе данных), обновите его, в противном случае оставьтеэто будет
// 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 голосов
/ 20 мая 2018

За документацию , используйте ConditionExpression, а не ConditionalExpression.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...