【发布时间】:2020-08-13 17:58:43
【问题描述】:
我正在使用一个使用 gsi 的 dynamo db 表,因此我可以通过附加属性进行查询(如果存在)。此属性将在流程中更新,因此所有项目在流程开始时都没有此属性。此属性在添加到项目时设置为 gsi 的主键。
除了指定 gsi 的主键我无法插入新项目之外,一切都按预期工作。如果尚未设置其主键,我希望 gsi 忽略该项目。在指定投影属性时,我认为使用 INCLUDE 选项可以做到这一点。显然我在这里弄错了,但我也不知道如何解决这个问题。
非常感谢任何帮助,而且我将不得不坚持使用 dynamo db,所以包括这个 db 在内的每个提示都会有很大帮助!
编辑: 为了澄清 - 这些是我的属性:
- id(主键:必填)
- 名称(属性)
- 年份(属性)
- gsi_id(GSI 主键:可选)
我想添加一个带有字段的项目:
- id(主键:必填)
- 名称(属性)
- 年份(属性)
然后添加 gsi_id 字段。
【问题讨论】:
-
Dynamodb 绝对允许您插入项目。无需指定 GSI 密钥。您所描述的模式称为稀疏索引,其中只有具有 GSI 键的项目才会投影到索引中。您是否遇到某种错误?
标签: amazon-dynamodb amazon-dynamodb-index amazon-dynamodb-data-modeling