如果我有一个具有userId散列键和productId范围键的表,那么只有在使用boto3的dynamodb绑定还不存在的情况下,如何将项放入该表?
正常的放置物品的调用如下所示
table.put_item(Item={'userId': 1, 'productId': 2})
我的带有条件表达式的调用如下所示:
table.put_item(
Item={'userId': 1, 'productId': 2},
ConditionExpression='userId <> :uid AND productId <> :pid',
ExpressionAttributeValues={':uid': 1, ':pid': 3}
)
但这每次都会引发条件检查失败异常。是否存在具有相同productId的项。
不幸的是,这方面的文档并不是非常清楚。我需要做一些类似的事情,下面是对我有用的,使用boto3:
与另一个答案类似,关键是属性不存在函数,但我最初不清楚如何让它起作用。经过一些实验,我能让它与上述。
您不需要sortkey(或range key),只要分区键或散列键就足够了。
我认为使用client.put_item而不是table.put_item可以获得更好的文档
来自boto3documentation:
条件表达式:
我正在使用dynamodb2 overwrite parameteron
item.save()
相关问题 更多 >
编程相关推荐