DynamoDB中的分页

时间:2013-01-18 09:54:59

标签: amazon-dynamodb

我需要在maxcount为10的jsp上显示搜索结果,并且它应该有一个分页来作为分页功能来回追溯和转发。

Dynamodb有 lastevaluatedkey ,但返回上一页无效,但我可以转到 lastevaluatedKey 的下一个结果集。< / p>

任何人都可以帮忙解决这个问题。

我使用Java SPRING和DynamoDB作为堆栈。

由于 萨蒂亚

4 个答案:

答案 0 :(得分:4)

您可以使用lastEvaluatedKey结合向后扫描方向来&#34;向后移动&#34;并获得最后一页。

答案 1 :(得分:1)

您必须在会话var,查询字符串或稍后可以访问的类似内容中保留先前密钥的记录,然后在您想要后退时使用该密钥执行查询。迪纳摩不会为您追踪。

答案 2 :(得分:0)

要启用前进/后退,您只需要保留

the first key,它是先前返回页面的第一条记录的hash key + sort key(如果您要查询第一页,则为null)。

检索到的页面的

the last key,即先前返回页面的最后一条记录的hash key + sort key

然后要向前或向后导航,您需要在查询请求中传递以下参数:

Forward: last key as the ExclusiveStartKey, order = ascend

Backward: first key as the ExclusiveStartKey, order = descend

我在2016年的一个项目中实现了这一点.DynamoDB现在可能会提供一些类似的方便的API,但我不确定,因为我很长时间没有检查过DynamoDB。

答案 3 :(得分:0)

要使用dynamodb进行简单的无状态正向和反向导航,请查看我对类似问题https://stackoverflow.com/a/64179187/93451的回答。

总而言之,它会在每个响应中返回反向导航历史记录,从而使用户可以明确地向前或向后移动直到任一端。

GET /accounts                -> first page
GET /accounts?next=A3r0ijKJ8 -> next page
GET /accounts?prev=R4tY69kUI -> previous page