java 有条件地向DynamoDb全局辅助索引添加/删除记录

xurqigkl  于 2022-11-20  发布在  Java
关注(0)|答案(1)|浏览(130)

我有一个基本DDB表Attachment,它有两个字段,分别称为customerStateisIntermediateState
客户状态可以是AttachingDetachingAttachedDetached。中间状态可以是1(如果是customerState == Attaching || Detaching)或0(如果是customerState == Attached || Detached)。
customerState将从连接/分离-〉连接/分离。
现在,我想构造一个GSI,其中,如果isIntermediateState = 1,我只想从基本Attachment表中添加记录,并在isIntermediateState = 0或customerState变为Attached || Detached时删除记录(最终)。
DynamoDb中的GSI是否允许根据基表中字段的值有条件地在索引中添加和删除记录?此外,它是否会在基表更新时继续更新索引,还是仅在最初添加记录时才决定是否添加到索引?

nnsrf1az

nnsrf1az1#

不存在基于表达式的条件投影。您可以拥有一个稀疏的GSI分区关键字属性,该属性只存在于您决定填充它的项上,基于您喜欢的任何逻辑。
属性存在?转到GSI。属性不存在?不转到GSI。
因此,基本上是将GSI1PK属性添加到其他值指示它应该在GSI中的项。

相关问题