我正在使用 AWS 托管 API 与 API Gateway 和 DynamoDB 直接集成。
我现在正在尝试为我的应用程序添加分页功能,但我很难 100% 地实现它。我面临的问题是当我向后扫描时,我会给你一个例子来更好地理解这个问题。
想象一下,我有一个包含 20 个项目和一个页面大小为 5 的列表。
- 当我查询我的表时,第一个查询将返回
1, 2, 3, 4, 5
. 预期行为! - 当我查询我的表时,将第五个元素中的 lastEvaluatedKey 传递给它,它返回
6, 7, 8, 9, 10
. 预期的行为。 - 现在,当我使用 flag 进行查询时,我的问题就出现了
ScanIndexForward=false
。这意味着我不想继续前进。相反,我想要lastEvaluatedKey
. 问题是,如果我使用lastEvaluatedKey
从上次查询中检索到的内容,而不是类似5, 4, 3, 2, 1
,我有4, 3, 2, 1
.
如果需要,将跳过来自lastEvaluatedKey
或调用它的元素。head
如果您想象在一个表格中的正常行为,您单击next page
和previous page
,这意味着当您转到第二页并返回第一页时,您将只得到 4 个项目,而不是一个,因为提议的情景。
最后,我尝试了相同的查询,AWS CLI
结果是一样的。在与支持人员聊天后,他们确认这是预期的行为。
我只是想知道人们如何看待这种情况,因为我知道亚马逊在生产中使用它,所以应该有办法做到这一点。