如何通过boto3在DynamoDB表中有条件地插入项

8 浏览
0 Comments

如何通过boto3在DynamoDB表中有条件地插入项

如果我有一个哈希键为userId,范围键为productId的表,那么如何使用boto3的dynamodb绑定将项放入该表中,仅当该项不存在时才放入?

普通的put_item调用如下所示:

table.put_item(Item={'userId': 1, 'productId': 2})

带有ConditionExpression的调用如下所示:

table.put_item(
    Item={'userId': 1, 'productId': 2}, 
    ConditionExpression='userId <> :uid AND productId <> :pid', 
    ExpressionAttributeValues={':uid': 1, ':pid': 3}
)

但是这会每次引发ConditionalCheckFailedException异常,无论是否存在具有相同productId的项。

0