DynamoDb Put 项目在 GSI 上进行条件检查

DynamoDb Put item with a condition check on GSI

我有 dynamodb table 和 GSI 如下:

ParentId#ChildName
2346#John
2388#Jerry

现在我想向 table 添加一个新时间,其中 parentId = 2388 和 ChildName = Tom,在添加此项之前我想确保 GSI 尚未包含此组合“2388 #汤姆"。

我如何实现这一点,我在考虑在执行 putItem 操作时在 GSI 上使用条件表达式,但我不确定 dynamo db 是否支持二级索引上的条件表达式?

非常感谢任何帮助。

您无法使用现有的 table 结构来完成此操作。 GSI 最终是一致的,不能用于写入,即使是事务。如果您自己管理 GSI 传播到另一个项目,或者正如这个答案提到的,另一个 table.

,您就可以成功

DynamoDBSaveExpression with conditional check on GSI