我有一个DynamoDB表,其中一个属性作为主键ItemName
。
添加到表中的每个属性都使用当前的UTC时间戳命名。
我想在删除最后一个属性时对该项进行条件删除,该属性将检查是否还有ItemName
以外的其他属性,如果还有,我想删除项目
有没有这样做?
感谢。
答案 0 :(得分:2)
据我所知,没有办法告诉DynamoDB自动为您执行此操作。如果您使用UpdateItem方法将属性添加到尚不存在的项目中,他们将为您创建一个新项目,但他们不会在所有属性时自动删除该项目(除了密钥)已被删除。
执行此操作的最佳方法是使用UpdateItem方法的ReturnValues属性。将其设置为ALL_NEW
以获取返回给您的行的当前状态。然后,您的代码可以检查项目是否有任何其他属性,并根据需要调用DeleteItem方法。
编辑:
此外,您可以在DeleteItem
方法调用中添加ConditionExpression,以便在删除属性之前检查是否存在属性。