我想在某些條件下更新項目,然後我想知道UpdateItem返回時項目是否更新。dynamodb 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"),
})
你可以用'ALL_NEW'或'UPDATED_NEW'以獲得新屬性值。 – user1431317
如果沒有更新,「UPDATED_NEW」的結果是否爲空?或者是否在操作後返回當前值? – voutasaurus
你必須親自嘗試一下,但是如果文檔是正確的,在這種情況下,屬性貼圖應該是空的。 – user1431317