ffx*_*sam 5 indexing amazon-dynamodb
我对 DynamoDB 中的某些东西感到非常困惑:
对于表中的任何项目,如果项目中存在索引排序键值,DynamoDB 只会写入相应的索引条目。如果排序键没有出现在每个表项中,则称该索引为稀疏索引。
[...]
要跟踪未结订单,您可以在 CustomerId(分区键)和 IsOpen(排序键)上创建索引。只有表中定义了 IsOpen 的订单才会出现在索引中。
但是,如果您使用备用排序键定义了 LSI,则在创建新项目时,备用排序键永远不能为空。因此,索引根本不是稀疏的,因为我创建的每个项目都会在索引中结束。
我错过了什么?
所以我终于想通了。我应该澄清我使用的是 AWS 控制台。
我创建了一个 GSI 作为测试,带有 partition keyGpart
和 sort key Gsort
。我注意到当我创建一个新项目时,这些字段是自动添加的,我不能将它们留空,这就是我卡住的地方。(我会收到错误“一个或多个参数值无效:一个 AttributeValue 可能不包含空字符串”)
事实证明,我需要做的实际上只是删除这些字段。
删除任何 GSI 或 LSI 相关属性后,我可以保存该项目,果然,这些索引仅显示那些键存在的项目。