在 Dynamodb 索引中使用集合作为主键

Using set as Primary Key in Dynamodb Index

我创建了一个 Dynamodb 模型,在该模型中,我使用三个单独的 ID 和另一个接受时间戳的属性的组合将一个属性设置为一个集合。我们的想法是在这两者上创建一个 GIS 索引,并将 set 属性作为主键,将时间戳作为排序键。在对 KeyConditionExpression 使用 "equality" 运算符时,我无法获取数据。不确定是什么问题。因此,如果有人可以指导我是遵循正确的方法还是遗漏了什么。

下面是设置的属性值示例

{ "291447cb-f7a5-4627-9a7e-ac7b4adf9xce", "21", "d2e5723a-437a-4517-9f4b-1a62575224d6" }

DynamoDB can only use keys of scalar types (single value string, number or binary)。你可以做的是将值连接成一个字符串作为你的键(例如 "291447cb-f7a5-4627-9a7e-ac7b4adf9xce:21:d2e5723a-437a-4517-9f4b-1a62575224d6")。

不要忘记在您的 table 中,您需要存储这个串联的密钥,以便它可以在您的 GSI 中使用。并且您需要确保它根据您的要求更新/与集合保持同步。