in DynamoDB-SDK-Examples/golang/WorkingWithItems/deleteItemConditional.go [23:73]
func main() {
// Create Session
sess, err := session.NewSession(&aws.Config{
Region: aws.String("eu-west-1")},
)
// Create DynamoDB client
svc := dynamodb.New(sess)
// Keys for item
item := Item{
Pk: "jose.schneller@somewhere.com",
Sk: "metadata",
}
// Marshal
av, err := dynamodbattribute.MarshalMap(item)
if err != nil {
fmt.Println("Got error marshalling map:")
fmt.Println(err.Error())
os.Exit(1)
}
// Set Age
condition, err := dynamodbattribute.MarshalMap(AgeCondition{
Age: 30,
})
if err != nil {
fmt.Println(err.Error())
return
}
// Delete Item if Age is Less Than 30
input := &dynamodb.DeleteItemInput{
TableName: aws.String("RetailDatabase"),
Key: av,
ConditionExpression: aws.String("age <= :a"),
ExpressionAttributeValues: condition,
}
_, err = svc.DeleteItem(input)
if err != nil {
fmt.Println("Got error calling DeleteItem")
fmt.Println(err.Error())
return
}
fmt.Println("Deleted Item")
}