Ответ 1
Вы можете сделать это с UpdateItem
API-интерфейса UpdateItem
и UpdateExpression
из-за вашего UpdateExpression
использования. Поскольку count
будет здесь типом Number
, вы можете использовать выражения SET
или ADD
:
Документация для ADD
сообщает вам, что вы можете использовать ее для типов Number
(выделение мое):
ADD - добавляет указанное значение к элементу, если атрибут еще не существует. Если атрибут существует, то поведение ADD зависит от типа данных атрибута:
- Если существующим атрибутом является число, и если Value также является числом, тогда значение математически добавляется к существующему атрибуту. Если Value - отрицательное число, то оно вычитается из существующего атрибута.
Если вы используете ADD для увеличения или уменьшения значения числа для элемента, который не существует до обновления, DynamoDB использует 0 в качестве начального значения. Аналогично, если вы используете ADD для существующего элемента для увеличения или уменьшения значения атрибута, которое не существует до обновления, DynamoDB использует 0 в качестве начального значения. Например, предположим, что элемент, который вы хотите обновить, не имеет атрибута с именем itemcount, но вы все равно должны ADD номер 3. DynamoDB создаст атрибут itemcount, установит его начальное значение на 0 и, наконец, добавит 3 к нему. Результатом будет новый атрибут itemcount в элементе со значением 3.
Для вашего примера вы можете иметь UpdateExpression
как ADD #c :n
, где :n
имеет ExpressionAttributeValue
типа Number
, 1
- это значение, а #c
- подстановка ExpressionAttributeName
для count
. Вам нужно использовать заполнитель для count
потому что это зарезервированное слово.
Дополнительные примеры по изменению элементов и атрибутов с помощью выражений обновления