我有一个基本DDB表Attachment
,它有两个字段称为customerState
和isIntermediateState
。
customerState为Attaching
、Detaching
、Attached
、Detached
。isIntermediateState可以是1
(如果customerState == Attaching || Detaching
)或0
(如果customerState == Attached || Detached
)。
customerState将从attach/Detaching ->附加/分离。
现在我想构建一个GSI,如果isIntermediateState = 1,我只想从基本Attachment
表中添加记录,并在isIntermediateState = 0或customerState变为Attached || Detached
时(最终)删除记录。
GSI在DynamoDb允许有条件地添加和删除记录的基础上,在基表中的字段值的索引?此外,它是否会在基表更新时继续更新索引,还是仅在最初添加记录时更新索引,是否会决定是否添加到索引中?
没有基于表达式的条件投影。你可以有一个稀疏的GSI分区键属性,它只存在于你决定填充它的项目上,基于任何你喜欢的逻辑。
属性存在吗?转到GSI。属性不存在吗?不去GSI。
所以基本上是给那些其他值表明它应该在GSI中的项目添加一个GSI1PK属性。