在DynamoDB查询中使用排序键和分页限制

0

【以下的问题经过翻译处理】 我有一个疑问,在使用DynamoDB查询时使用sortkey和分页限制(例如限制= 10)时,它是否提供整个DynamoDB表的已排序10个项目列表,还是只提供已查询项目的排序列表?

如果它只提供已查询项目的排序列表,那么如何获取总DynamoDB表项的排序列表?例如,有一个帖子表,每个帖子都有喜欢,如何按降序提供帖子列表中最喜欢的帖子?

profile picture
专家
已提问 5 个月前17 查看次数
1 回答
0

【以下的回答经过翻译处理】 在DynamoDB表中无法获取所有键的顺序。唯一可能的方法是“扫描”整个表,并在客户端实现排序。

当然,您可以使用DynamoDB Streams并保持指向前10个最受欢迎的帖子的指针,如果这是您的应用程序要显示的内容。然后,您可以简单地使用列出的10个项目调用“BatchGetItems”。

另一个选项是创建一个具有单个属性作为PK(例如“POSTS”)和赞数作为SK的GSI。

PKSK其他
POSTS7数据
POSTS9数据
POSTS11数据

然后,您可以使用键“POSTS”并使用“ScanIndexForward=False”,“Limit=10”查询GSI。

请注意,这不是可扩展的解决方案,因为GSI键是单个值。这将将您的表的写入限制为每秒约1000 WCUs。根据实际吞吐量来决定。

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则