Да, это возможно. Это называется «условным обновлением» - см. Например в этой документации . Вы можете обновить один атрибут на основе значения другого атрибута - если они принадлежат к одному и тому же элементу .
Вот пример (в Python, с использованием библиотеки Amazon boto3, но вы можете перевести его на любой язык, который вы предпочитаете):
table.update_item(
Key={'p': p},
UpdateExpression='SET status = :completedl',
ConditionExpression='ts > :currentts',
ExpressionAttributeValues={':completed': 'completed', ':currenttts': currentts})
Это условно обновляет элемент с помощью ключа p
: Если ConditionExpression
заполнено, то есть значение элемента ts
выше, чем " currentts "(который вы предоставите), то происходит обновление, описанное в UpdateExpression
: для атрибута status
этого элемента устанавливается строка 'completed'.