Ich möchte ein Dokument in DynamoDB "hochstufen". Das heißt, ich möchte einen Schlüssel und eine Menge von Feld / Wert-Paaren angeben. Wenn mit diesem Schlüssel kein Dokument vorhanden ist, werde ich nicht mit diesem Schlüssel und den angegebenen Schlüssel / Wert-Paaren erstellt. Wenn ein Dokument mit diesem Schlüssel existiert, möchte ich, dass die angegebenen Felder auf die angegebenen Werte gesetzt werden (wenn diese Felder vorher nicht existierten, sollten sie hinzugefügt werden). Alle anderen nicht angegebenen Felder im vorhandenen Dokument sollten in Ruhe gelassen werden.
Es scheint, dass ich das ziemlich gut mit dem Aufruf UpdateItem
erreichen kann, wenn die Feld / Wert-Paare, die ich einstelle, alle Felder der obersten Ebene sind. Wenn ich geschachtelte Strukturen habe, arbeitet UpdateItem
, um die verschachtelten Felder zu setzen, solange die Struktur existiert. Mit anderen Worten, wenn mein vorhandenes Dokument "foo": {}
hat, kann ich "foo.bar": 42
erfolgreich setzen.
Ich kann jedoch "foo.bar": 42
nicht einstellen, wenn kein foo
-Objekt bereits existiert (wie in dem Fall, in dem es überhaupt kein Dokument mit dem angegebenen Feld gibt und mein 'upsert' ist) verhält sich wie ein 'Einfügen'.
Ich fand eine Diskussion zu den AWS-Foren von vor einigen Jahren, was zu implizieren scheint das, was ich tun möchte, kann nicht getan werden, aber ich hoffe, dass sich das kürzlich geändert hat, oder vielleicht jemand weiß, wie es geht?
Tags und Links amazon-dynamodb upsert