我有下表:
ItemUUID (string) | Purchases (number) | Type (string)
--------------------------------------
book-a | 5 | book
book-b | 1 | book
book-c | 10 | book
每次有人购买商品时,我都想增加Purchases
。然后,我想查询表格以获得购买最多的物品(ItemUUID
按Purchases
排序的DESC)
我认为我可以将ItemUUID
用作主键,并使用Type
的排序键在Purchases
上创建全局二级索引。然后查询GSI Type = book
的位置,将排序键留空,然后按降序排序。
这不起作用。 DynamoDB是否可以使用我的用例?
答案 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进行排序