Wie füge ich ein Element mit boto3 @ bedingt in eine Dynamodb-Tabelle ei
Wenn ich eine Tabelle mit einem Hash-Schlüssel von userId und einem Bereichsschlüssel von productId habe, wie kann ich ein Element nur dann in diese Tabelle einfügen, wenn es noch nicht mit den Dynamodb-Bindungen von boto3 existiert?
Der normale Aufruf von put_item sieht so aus
table.put_item(Item={'userId': 1, 'productId': 2})
Mein Aufruf mit einem ConditionExpression sieht folgendermaßen aus:
table.put_item(
Item={'userId': 1, 'productId': 2},
ConditionExpression='userId <> :uid AND productId <> :pid',
ExpressionAttributeValues={':uid': 1, ':pid': 3}
)
Aber dies löst jedes Mal eine ConditionalCheckFailedException aus. Gibt an, ob ein Artikel mit derselben Produkt-ID existiert oder nicht.