DynamoDB GSI - 仅包含一些行
问题描述:
DynamoDB有没有办法在全局二级索引中包含一些行?例如,我想列出所有曾经发生过的属性指示它是否处于活动状态的事情。如果它是活跃的,我希望它出现在GSI中,但是如果它不活跃,则根本不需要投影。这可能吗?DynamoDB GSI - 仅包含一些行
答
从我的测试看来,您可以将null用作范围键,并且没有该属性的行将不会被投影。
答
GSI是一个稀疏索引,这意味着如果GSI中定义的分区和排序键不存在于该项目中,则它不会存在于GSI中。
此外,请记住GSI中的分区键和排序键不需要像基表一样是唯一的。对GSI不执行唯一性
不知道您的数据模型,您可以使用GSI的密钥架构中仅存在于活动项目中的属性。
这可能会提供一些更多的信息:https://www.abhayachauhan.com/2017/12/dynamodb-global-secondary-indexes
HTH