当前位置: 首页 > 知识库问答 >
问题:

DynamoDb在GSI上对物品进行状态检查

孔星宇
2023-03-14

我有带GSI的dynamodb表,如下所示:

现在,我想添加一个新的时间表,在添加此项之前,我想确保GSI不已经包含此组合"2388#Tom"。

我如何才能实现这一点,我想在GSI上使用一个条件表达式,而做putItem操作,但我不确定是否发电机db支持次要索引上的条件表达式?

任何帮助都将不胜感激。

共有1个答案

卫鸿朗
2023-03-14

你不能用现有的表格结构来做这件事。GSI最终是一致的,不能在写操作中使用,即使在事务中也是如此。如果您自己管理GSI传播到另一个项目,或者正如这个答案所提到的,另一个表,那么您可以成功。

GSI上带条件检查的DynamoDBSaveExpression

 类似资料:
  • 我正在使用AWS控制台和NodeJS。 我有一个带有分区键(user\u id)和排序键(company\u id)以及其他属性的dynamodb用户表。 我的一个属性是用户的电子邮件。电子邮件是唯一属性。 我需要通过电子邮件user_id,但我没有他的user_id和company_id。 我认为我应该使用全球二级指数。 我点击了用户表,打开索引选项卡并为该表创建了GSI。(名称:电子邮件,类型

  • 在我的DynamoDB表中,有HashKey=ID和GSI=Type。我需要获取特定类型(GSI)的所有hashKeys(ID)。 在这种情况下,获取给定类型的所有ID的有效方法是什么?我的DynamoDB表不会很大。

  • 我想进行更新,但我想添加的条件检查不是基于主表的哈希/范围,而是基于GSI。 实际上,如果给定属性(即GSI的哈希)已经存在,我希望保存失败。 例如,在一个虚构的employees表中,“SSN”是散列键,“EmployeeId”上有一个GSI。这两个属性都必须是独一无二的。在保存员工时,我希望确保表中没有使用“SSN”或“EmployeeId”。我可以用表的散列,也就是SSN,但不能用GSI的散

  • 在我的Dynamodb表中,该表包含分区键“id”和“created_at”作为排序键的“batchs”和一个带有“batch_status”的GSI 假设我想查询状态为“正在进行”、“新建”、“已完成”的批。

  • 我有现有的Spring MVC web应用程序。现在我只想使用Spring-Boot-Starter-Actutor中提供的健康检查特性。

  • 问题内容: React有很多使用PropTypes来检查道具价值的方法。我通常使用的是。但是,最近我遇到一种情况,其中我有一个对象,该对象内部将具有动态键/值。我知道每个键都应该是一个字符串(采用已知格式),每个值都应该是一个整数。即使使用自定义道具验证功能,它仍然假设您知道道具的钥匙。如何使用PropTypes检查对象/形状的键和值是否正确? 再说一遍:我至少要检查每个键的值是一个数字。理想情况