Last updated on
Apr 27, 2021
Description
This function makes changes to an existing item's attributes, or adds a new item to the table, if the item does not exist. Using this function, you can also perform a conditional update on an existing item.
For more information, see UpdateItem.
Category
History
ColdFusion (2021 release): Added this function.
Syntax
serviceHandle.updateItem(requestParameters)
serviceHandle.updateItem(requestParameters)
serviceHandle.updateItem(requestParameters)
Parameters
See request parameters of UpdateItem.
Example
<cfscript>
cred = {
"credentialAlias" : "myalias",
"vendorName" : "AWS",
"region" : "us-east-2",
"secretAccessKey" : "xxxxx",
"accessKeyId" : "xxxx"
}
conf={
"serviceName"="DYNAMODB"
}
dynamo=getCloudService(cred, conf)
tableName="NewProductCatalog"
Stage 1: Create a table
createTableStruct={
"TableName": "#tableName#",
"KeySchema": [
{
"AttributeName": "id",
"KeyType": "HASH"
}
],
"AttributeDefinitions": [
{
"AttributeName": "id",
"AttributeType": "N"
}
],
"ProvisionedThroughput": {
"ReadCapacityUnits": 10,
"WriteCapacityUnits": 10
}
}
dynamo.createTable(createTableStruct)
sleep(20000)
// Stage 2: Insert an item
putItemStruct = {
"TableName": "#tableName#",
"Item":{
"id": {
"N": 550
},
"Title": {
"S": "Macbeth"
},
"Price": {
"N": "2"
}
},
"ReturnValues": "ALL_OLD"
}
dynamo.putItem(putItemStruct,{"hasType": true})
sleep(20000)
//abort;
// Stage 3: Update the item that was inserted
updateItemStruct={
"TableName": "#tableName#",
"Key": {
"id": {
"N": 550
}
},
"UpdateExpression": "set Title = :val1",
"ConditionExpression": "Price = :val2",
"ExpressionAttributeValues": {
":val1": {"S": "Hamlet"},
":val2": {"N": "2"}
},
"ReturnValues": "ALL_NEW"
}
try{
result = dynamo.updateItem(updateItemStruct, {"hasType": true})
if(result.Attributes.Title.S == "Hamlet") {
writeOutput("Title changed successfully<br/>")
} else {
writeOutput("Failed to change the title<br/>")
}
}
catch (any e){
writeDump(e)
}
</cfscript>
<cfscript>
cred = {
"credentialAlias" : "myalias",
"vendorName" : "AWS",
"region" : "us-east-2",
"secretAccessKey" : "xxxxx",
"accessKeyId" : "xxxx"
}
conf={
"serviceName"="DYNAMODB"
}
dynamo=getCloudService(cred, conf)
tableName="NewProductCatalog"
Stage 1: Create a table
createTableStruct={
"TableName": "#tableName#",
"KeySchema": [
{
"AttributeName": "id",
"KeyType": "HASH"
}
],
"AttributeDefinitions": [
{
"AttributeName": "id",
"AttributeType": "N"
}
],
"ProvisionedThroughput": {
"ReadCapacityUnits": 10,
"WriteCapacityUnits": 10
}
}
dynamo.createTable(createTableStruct)
sleep(20000)
// Stage 2: Insert an item
putItemStruct = {
"TableName": "#tableName#",
"Item":{
"id": {
"N": 550
},
"Title": {
"S": "Macbeth"
},
"Price": {
"N": "2"
}
},
"ReturnValues": "ALL_OLD"
}
dynamo.putItem(putItemStruct,{"hasType": true})
sleep(20000)
//abort;
// Stage 3: Update the item that was inserted
updateItemStruct={
"TableName": "#tableName#",
"Key": {
"id": {
"N": 550
}
},
"UpdateExpression": "set Title = :val1",
"ConditionExpression": "Price = :val2",
"ExpressionAttributeValues": {
":val1": {"S": "Hamlet"},
":val2": {"N": "2"}
},
"ReturnValues": "ALL_NEW"
}
try{
result = dynamo.updateItem(updateItemStruct, {"hasType": true})
if(result.Attributes.Title.S == "Hamlet") {
writeOutput("Title changed successfully<br/>")
} else {
writeOutput("Failed to change the title<br/>")
}
}
catch (any e){
writeDump(e)
}
</cfscript>
<cfscript> cred = { "credentialAlias" : "myalias", "vendorName" : "AWS", "region" : "us-east-2", "secretAccessKey" : "xxxxx", "accessKeyId" : "xxxx" } conf={ "serviceName"="DYNAMODB" } dynamo=getCloudService(cred, conf) tableName="NewProductCatalog" Stage 1: Create a table createTableStruct={ "TableName": "#tableName#", "KeySchema": [ { "AttributeName": "id", "KeyType": "HASH" } ], "AttributeDefinitions": [ { "AttributeName": "id", "AttributeType": "N" } ], "ProvisionedThroughput": { "ReadCapacityUnits": 10, "WriteCapacityUnits": 10 } } dynamo.createTable(createTableStruct) sleep(20000) // Stage 2: Insert an item putItemStruct = { "TableName": "#tableName#", "Item":{ "id": { "N": 550 }, "Title": { "S": "Macbeth" }, "Price": { "N": "2" } }, "ReturnValues": "ALL_OLD" } dynamo.putItem(putItemStruct,{"hasType": true}) sleep(20000) //abort; // Stage 3: Update the item that was inserted updateItemStruct={ "TableName": "#tableName#", "Key": { "id": { "N": 550 } }, "UpdateExpression": "set Title = :val1", "ConditionExpression": "Price = :val2", "ExpressionAttributeValues": { ":val1": {"S": "Hamlet"}, ":val2": {"N": "2"} }, "ReturnValues": "ALL_NEW" } try{ result = dynamo.updateItem(updateItemStruct, {"hasType": true}) if(result.Attributes.Title.S == "Hamlet") { writeOutput("Title changed successfully<br/>") } else { writeOutput("Failed to change the title<br/>") } } catch (any e){ writeDump(e) } </cfscript>