我想在某些条件下更新一个项目,然后我想知道当 UpdateItem 返回时该项目是否已更新。
文档对我来说似乎矛盾。
在此页面上:http : //docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateItem.html在“条件更新”示例中它说“更新后出现的所有项目属性都将返回在回应中。”
在此页面上:https ://godoc.org/github.com/aws/aws-sdk-go/service/dynamodb#UpdateItemOutput 它说属性是“在 UpdateItem 操作之前出现的属性值映射”
我真的不想要这些。我想要的是一个布尔值,表示是否有更新。
这是我的大脑现在的位置:
out, err := db.DynamoDB.UpdateItem(&dynamodb.UpdateItemInput{
TableName: tableName,
Key: map[string]*dynamodb.AttributeValue{
"KeyName": {S: aws.String(keyname)},
},
ExpressionAttributeNames: map[string]*string{
"#lock": aws.String("Lock"),
},
ExpressionAttributeValues: map[string]*string{
":now": aws.String(compfmt(time.Now())),
":promise": aws.String(compfmt(time.Now().Add(30 * time.Second))),
},
ConditionExpression: aws.String("attribute_not_exist(#lock) OR :now > #lock"),
UpdateExpression: aws.String("SET #lock = :promise"),
})
冉冉说
BIG阳
侃侃尔雅
相关分类