如何按属性对DynamoDB行进行排序

时间:2018-11-29 02:44:48

标签: amazon-web-services amazon-dynamodb dynamodb-queries amazon-dynamodb-index

我有下表:

ItemUUID (string) | Purchases (number) | Type (string)
--------------------------------------
book-a | 5 | book
book-b | 1 | book
book-c | 10 | book

每次有人购买商品时,我都想增加Purchases。然后,我想查询表格以获得购买最多的物品(ItemUUIDPurchases排序的DESC)

我认为我可以将ItemUUID用作主键,并使用Type的排序键在Purchases上创建全局二级索引。然后查询GSI Type = book的位置,将排序键留空,然后按降序排序。

这不起作用。 DynamoDB是否可以使用我的用例?

1 个答案:

答案 0 :(得分:0)

我想出的方法行得通,但我感觉有点像黑客。

表定义

Primary partition key   type (String)
Primary sort key        uuid (String)

全球二级索引

Primary partition key   type (String)
Primary sort key        purchases (Number)

由于GSI不必具有唯一的分区+排序键,因此我可以查询type=book,将购买保留为空白,对DESC进行排序