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

0

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

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

1 Antwort
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
EXPERTE
beantwortet vor 6 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen

Relevanter Inhalt