We announced
Updating an Amazon DynamoDB Table Item
The following example uses the DynamoDBÂ UpdateItem operation
to update the rating to 0.5 for the item with the year
2015 and
title
The Big New Movie
in the Movies
table in your default region.
Create the file DynamoDBUpdateItem.go. Add the following statements to import the Go and AWS SDK for Go packages used in the example.
import ( "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/session" "github.com/aws/aws-sdk-go/service/dynamodb" "fmt" "log" )
Initialize a session that the SDK will use to load
credentials from the shared credentials file ~/.aws/credentials
and region from the shared configuration file ~/.aws/config
and create a new DynamoDB service client.
// Initialize a session that the SDK will use to load // credentials from the shared credentials file ~/.aws/credentials // and region from the shared configuration file ~/.aws/config. sess := session.Must(session.NewSessionWithOptions(session.Options{ SharedConfigState: session.SharedConfigEnable, })) // Create DynamoDB client svc := dynamodb.New(sess)
Call UpdateItem to add the item to the table. If we encounter an error, print the error message. Otherwise, display a message that the item was updated.
// Update item in table Movies tableName := "Movies" movieName := "The Big New Movie" movieYear := "2015" movieRating := "0.5" input := &dynamodb.UpdateItemInput{ ExpressionAttributeValues: map[string]*dynamodb.AttributeValue{ ":r": { N: aws.String(movieRating), }, }, TableName: aws.String(tableName), Key: map[string]*dynamodb.AttributeValue{ "Year": { N: aws.String(movieYear), }, "Title": { S: aws.String(movieName), }, }, ReturnValues: aws.String("UPDATED_NEW"), UpdateExpression: aws.String("set Rating = :r"), } _, err := svc.UpdateItem(input) if err != nil { log.Fatalf("Got error calling UpdateItem: %s", err) } fmt.Println("Successfully updated '" + movieName + "' (" + movieYear + ") rating to " + movieRating)
See the complete example