2017-06-19 3 views
0

Meine Artikel wie folgt aussehen:DynamoDB: überprüfen, ob Elementwert vor der Aktualisierung hat

{id: some_id, 
owners: ["1", "2", "3"] 
} 

Say owner = "2". Ich möchte eine Vorbedingung schreiben, die sicherstellt, dass owner in owners vor der Artikelaktualisierung (put) war. Ich habe bereits eine Voraussetzung geschrieben, der Punkt-ID vor der Aktualisierung vorhanden ist, um sicherzustellen:

var params = { 
     TableName: tableNames[event.pathParameters.resourceType], 
     Item: item, 
     ConditionExpression: "attribute_exists(id)" 
    }; 

Und ich will für get und scan/query das gleiche tun. Ist das möglich, oder sollte ich stattdessen den Artikel zuerst bekommen und dann den Zustand im Code überprüfen, bevor ich den Artikel aktualisiere?

Antwort

0

Verwenden Sie bitte contains, um zu überprüfen, ob die Besitzer die erwartete Besitzer-ID hat.

"ConditionExpression": "contains (owners, :ownersStr)", 
"ExpressionAttributeValues": { 
    ":ownersStr" : "2" 
} 
Verwandte Themen