update
Introduction
update
method performs update request using aws-sdk UpdateItemCommand.
execute
update
takes 3 arguments:
- (required) any Condition expression with at least item identifier
- (required) any Update Expression.
- (optionnal) options
const res = await User.update(
{
id: "user-2",
sex: "female",
},
{
friendId: {
$push: "user-1",
},
age: {
$incr: 1,
},
},
{ ReturnConsumedCapacity: "TOTAL" }
);
Underlying request
import { DynamoDBClient, UpdateItemCommand } from "@aws-sdk/client-dynamodb";
const client = new DynamoDBClient(config);
const cmd = new UpdateItemCommand({
TableName: "user-table",
Key: { id: { S: "user-2" } },
UpdateExpression: "SET #n0 = list_append(#n0, :v1), #n2 = #n2 + :v3",
ConditionExpression: "#n4 = :v5",
ExpressionAttributeNames: { "#n0": "friendId", "#n2": "age", "#n4": "sex" },
ExpressionAttributeValues: { ":v1": { L: ["user-1"] }, ":v3": { N: "1" }, ":v5": { S: "female" } },
ReturnConsumedCapacity: "TOTAL",
});
client.send(cmd);
options
options
is an object which accepts UpdateItemCommandInput
options and DynamoQL specific options.
exec
exec
boolean directive to execute or not the actual request.
When false
update will return UpdateItemCommandInput
object.
import type { UpdateItemCommandInput } from "@aws-sdk/client-dynamodb";
const cmd: UpdateItemCommandInput = await User.update(
{
id: "user-2",
sex: "female",
},
{
friendId: {
$push: "user-1",
},
age: {
$incr: 1,
},
},
{ exec: false }
);