If the existing attribute is a number, and if Value
is also a number, then the Value
is
mathematically added to the existing attribute. If Value
is a negative number, then it is subtracted
from the existing attribute.
If you use ADD
to increment or decrement a number value for an item that doesn't exist before the
update, DynamoDB uses 0 as the initial value.
In addition, if you use ADD
to update an existing item, and intend to increment or decrement an
attribute value which does not yet exist, DynamoDB uses 0
as the initial value. For example, suppose
that the item you want to update does not yet have an attribute named itemcount, but you decide to
ADD
the number 3
to this attribute anyway, even though it currently does not exist.
DynamoDB will create the itemcount attribute, set its initial value to 0
, and finally add
3
to it. The result will be a new itemcount attribute in the item, with a value of
3
.
If the existing data type is a set, and if the Value
is also a set, then the Value
is
added to the existing set. (This is a set operation, not mathematical addition.) For example, if the
attribute value was the set [1,2]
, and the ADD
action specified [3]
, then
the final attribute value would be [1,2,3]
. An error occurs if an Add action is specified for a set
attribute and the attribute type specified does not match the existing set type.
Both sets must have the same primitive data type. For example, if the existing data type is a set of strings, the
Value
must also be a set of strings. The same holds true for number sets and binary sets.