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

0

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

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

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
전문가
답변함 6달 전

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

질문 답변하기에 대한 가이드라인

관련 콘텐츠