Вам не нужен PutItem с условным выражением для этого случая.
Вам необходимо использовать UpdateItem API. UpdateItem «расстроен», поэтому, если первичный ключ не существует, API приведет к вставке нового элемента. Этот API принимает Обновление выражения , которое можно использовать для установки, изменения и / или удаления одного или нескольких полей из элемента. У выражений обновления есть несколько специальных функций, доступных для них, и для предотвращения перезаписи существующих данных вы должны использовать if_not_exists(path, operand)
. Если path
не существует, DynamoDB поместит результат operand
в path
. Если path
существует, он не изменится.
Выражение обновления для вашего случая будет выглядеть примерно так:
SET if_not_exists(date_created, :right_now), other_field_1 = :value_1, other_field_2 = :value_2