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.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage