在Dynamodb索引中使用set作为主键

时间:2019-09-10 12:11:21

标签: python-3.x amazon-dynamodb boto3 dynamodb-queries

我创建了一个Dynamodb模型,在该模型中,我使用三个单独的ID和另一个带有时间戳的属性的组合将属性设置为一组。想法是在这两个索引上创建一个GIS索引,其中set属性为主键,时间戳为排序键。在KeyConditionExpression中使用“等于”运算符时,无法获取数据。不知道是什么问题。因此,如果有人可以指导我是遵循正确的方法还是遗漏了某些东西。

下面是设置的属性值样本

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

1 个答案:

答案 0 :(得分:1)

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")。

别忘了在表中存储此级联密钥,以便可以在GSI中使用它。并且您需要确保它已根据您的要求进行了更新/保持同步。