Boto3 DynamoDB Python ConditionalExpression 不工作
Boto3 DynamoDB Python ConditionalExpression not working
目标只是在帐号不存在于列表中时附加帐号。但是无论如何它似乎都会附加帐号,所以我最终得到了重复项。我到底做错了什么?
response = table.update_item(
Key={
'id': id,
'num': num
},
ConditionExpression="NOT contains(#AN, :AN)",
UpdateExpression="SET #AN = list_append(#AN,:AN)",
ExpressionAttributeNames={
"#AN": "AccountNumber",
},
ExpressionAttributeValues={
":AN": [AccountNumber],
},
ReturnValues='UPDATED_NEW'
)
如果有人偶然发现了这个。
我认为问题在于 list_append 只接受 List 类型的对象。
所以“:AN”是一个列表。
但是当它检查帐号的条件时,正在检查列表对象而不是帐号本身。
因为它实际上从未包含 [AccountNumber] 但它确实包含 AccountNumber.
目标只是在帐号不存在于列表中时附加帐号。但是无论如何它似乎都会附加帐号,所以我最终得到了重复项。我到底做错了什么?
response = table.update_item(
Key={
'id': id,
'num': num
},
ConditionExpression="NOT contains(#AN, :AN)",
UpdateExpression="SET #AN = list_append(#AN,:AN)",
ExpressionAttributeNames={
"#AN": "AccountNumber",
},
ExpressionAttributeValues={
":AN": [AccountNumber],
},
ReturnValues='UPDATED_NEW'
)
如果有人偶然发现了这个。 我认为问题在于 list_append 只接受 List 类型的对象。 所以“:AN”是一个列表。 但是当它检查帐号的条件时,正在检查列表对象而不是帐号本身。 因为它实际上从未包含 [AccountNumber] 但它确实包含 AccountNumber.