Ich möchte ein Element unter bestimmten Bedingungen aktualisieren und dann würde ich gerne wissen, ob das Element aktualisiert wurde, wenn UpdateItem zurückgibt.dynamodb updatesitem mit conditionexpression return ob item aktualisiert
Die Dokumentation scheint mir widersprüchlich.
Auf dieser Seite: http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateItem.html im Beispiel "Conditional Update" heißt es "Alle Attribute des Elements, wie sie nach der Aktualisierung erscheinen, werden in der Antwort zurückgegeben."
Auf dieser Seite: https://godoc.org/github.com/aws/aws-sdk-go/service/dynamodb#UpdateItemOutput heißt es, dass „Eine Karte von Attributwerten, wie sie vor der UpdateItem Operation erschienen“ Attribut ist
will mich auch nicht wirklich davon. Was ich will, ist ein Bool, der sagt, ob es ein Update gab oder nicht. Diese
ist, wo mein Gehirn ist jetzt:
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"),
})
überprüfen verwenden 'ALL_NEW' oder' UPDATED_NEW' die neuen Werte in Attribute zu erhalten. – user1431317
Ist das Ergebnis von 'UPDATED_NEW' leer, wenn kein Update vorhanden war? Oder gibt es den aktuellen Wert nach der Operation unabhängig zurück? – voutasaurus
Sie müssen das selbst ausprobieren, aber wenn die Dokumentation korrekt ist, sollte die Attribute-Map in diesem Fall leer sein. – user1431317