Skip to main content

transactWrite

Introduction​

transactWrite method performs transact write request using aws-sdk TransactWriteItemsCommand.

execute​

transactWrite takes 2 arguments:

  1. (required) an object which must include:
  2. (optionnal) options

check​

an array of Condition expression with at least item identifier.

const res = await User.transactWrite({
check: [
{
id: "user-64",
isActive: false,
},
],
});

delete​

an array of object which includes

  • condition Condition expression object with at least item identifier.
  • (optionnally) ReturnValuesOnConditionCheckFailure.
const res = await User.transactWrite({
delete: [
{
condition: {
id: "user-64",
isActive: false,
},
},
],
});

put​

an array of object which includes

  • item item to be stored.
  • (optionnally) condition Condition expression object.
  • (optionnally) setterInfo
  • (optionnally) ReturnValuesOnConditionCheckFailure.
const res = await User.transactWrite({
put: [
{
item: {
id: "user-64",
firstname: "John",
lastname: "Doe",
age: 27,
isActive: true,
},
condition: {
age: {
$gt: 25,
},
},
setterInfo: {
generateHash: true,
},
},
],
});

update​

an array of object which includes

const res = await User.transactWrite({
update: [
{
condition: {
id: "user-64",
isActive: false,
},
set: {
firstname: "John",
},
},
],
});
All together
const res = await User.transactWrite({
check: [
{
id: "user-07",
isActive: false,
},
{
id: "user-91",
isActive: true,
},
],
put: [
{
item: {
id: "user-61",
firstname: "John",
lastname: "Doe",
age: 25,
isActive: true,
},
condition: {
age: {
$gt: 25,
},
},
setterInfo: {
generateHash: true,
},
},
],
delete: [
{
condition: {
id: "user-32",
isActive: false,
},
},
],
update: [
{
condition: {
id: "user-12",
isActive: false,
},
set: {
firstname: "Mike",
},
},
],
});

options​

options is an object which accepts TransactWriteItemsCommandInput options and DynamoQL specific options.

exec​

exec boolean directive to execute or not the actual request.
When false transactWrite will return TransactWriteItemsCommandInput object.

import type { TransactWriteItemsCommandInput } from "@aws-sdk/client-dynamodb";

const cmd: TransactWriteItemsCommandInput = await User.transactWrite(
{
check: [
{
id: "user-07",
isActive: true,
},
],
update: [
{
condition: {
id: "user-12",
isActive: false,
},
set: {
friendsId: {
$push: "user-07",
},
},
},
],
},
{
exec: false,
}
);