2017-11-10 3 views
3

Ich möchte ein Element in DynamoDB nur aktualisieren, wenn das neue Element ein jüngeres Datum als das vorhandene Element hat. Momentan suche ich nach dem vorhandenen Element, führe den Vergleich in meinem Code durch und schreibe dann in db. Ich habe mich gefragt, ob es eine Möglichkeit gibt, DynamoDB die Überprüfung und Aktualisierung in einer einzigen Abfrage durchführen zu lassen. Ich habe den Ausdruck conditionalexpression verwendet, aber er aktualisiert den Wert nicht, selbst wenn die Bedingung erfüllt ist. Ich arbeite mit Nodejs. unter VerwendungUpdate dynamodb Artikel basierend auf Bedingung

Erwartet

Klausel DynamoDB

+0

Können Sie bitte Ihren Code zeigen? – notionquest

Antwort

0

Ich habe Lösung gefunden. so unten ist mein Code.

var params; 
    params = { 
    Key: { 
     "HashKey": { 
     S: "Value" 
     } 
    }, 
    TableName: 'TableName', 
    AttributeUpdates: { 
     "Attr1": { 
     Value: { 
      S: "Value1" 
     } 
     } 
    }, 
    Expected: { 
     "Attr2": { 
      "ComparisonOperator": "EQ", 
      "AttributeValueList": [ {S: "Value2"} ] 
     } 
    } 
    }; 
    dynamodb_client.updateItem(params, function(err, data) { 
    if (err){ 
    console.log(err); 
    } else { 
    console.log(data); 
    } 
}); 

so über Code-Aktualisierungen Wert von Attr1 auf den Wert 1, wenn Attr2 gleich Wert2 ist