Я сейчас работаю над веб-сайтом и пытаюсь сделать запрос условного обновления для 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"}