我有一个动力车
hashkey:ContactID
全球二级指数:EmailIndex(电子邮件),
MobileIndex(移动)
我想以新项目没有的条件向dynamodb插入项目 表格
中已存在EmailId或手机号码我听说有条件的提交是否可以在上述情况下使用它。
应该注意,电子邮件和移动字段并不总是出现在项目
中以下是我现在用于插入项目
的代码table = dynamodb.Table('Contacts')
response = table.put_item(
Item={
'ContactID': str(uuid.uuid4()),
'Email': 'user@ymail.com',
'Mobile':'020298377783',
'City':"Alaska",
},
Expected={'Email': {'Exists': False}, 'Mobile':{'Exists': False}}
)
但即使我提供相同的电子邮件或移动
,它也会继续添加项目答案 0 :(得分:0)
如果每个项目都确实有电子邮件和与之关联的移动设备,您可以创建一个包含复合分区键架构的表,其中分区键为mobile_email=[{Mobile},{Email}]
。然后,您可以在PutItem请求中使用attribute_not_exists(mobile_email)
条件来阻止创建新项目。