inf*_*ine 5 javascript node.js amazon-dynamodb dynamodb-queries
我正在使用 DynamoDB 和 NodeJS 在 UI 上登记一些对象。名单很长,而且因为DynamoDB可以扫描/查询在一次数据的最1MB,我已经决定要在前端我使用分页所以Previous和Next按钮从当前页面PAGINATE来回。
我的问题是我想Table X通过使用DynamoDB Query基于所选DynamoDB Index.
假设我刚刚获取了最初的 20 个结果 (0-20),所以点击下一步按钮我想获取结果:21-40 等等。此外,我想启用向后分页,因此当我在显示结果的页面上时:41-60,Back按钮将再次获取结果:21-40。
根据我的理解,DynamoDB 不支持数字偏移。
如何实现向后和向前分页?我是 DynamoDB 的新手,请帮助我。
虽然 DynamoDB 只会向前分页您的数据,但您必须在Front End 中处理向后分页。
对于大型Tables(超过 1MB 大小),有什么DynamoDB作用:
LastEvaluatedKey以获取下一组数据或Next Page。这个值在前端用作分页键来来回分页。
LastEvaluatedKey保存在Scan或期间从 DynamoDB 获取的最后一个对象的值Query。
你需要做什么(在后端):
LIMIT属性 ofDynamoDB Query指定您只需要 20 个项目。ExclusiveStartKey属性 ofDynamoDB Query指定下一组数据将从该属性的指定值开始。你需要做什么(在前端):
保留一组对象arr[]来托管分页键。
保持一个page初始化为 -1的变量,其值将指示当前用户所在的页面。
LastEvaluatedKey,将其推入arr并增加page。现在,您有一个页面,
page表明您在第 0页上, 并arr包含下一页的页面键。
NextButton的代码应该遵循以下逻辑:
使用 ExclusiveStartKey = arr[ page]请求您的服务器获取下一页
当下一页的结果到达时,您将再次拥有另一个LastEvaluatedKey,因此再次将其推入arr并递增page。所以你在这里得到了图片,我们如何保存Page Keys。
BackButton的代码应该遵循以下逻辑:
由于page变量表示当前页面,因此page - 1将表示上一页。所以:
if ( page-1>=0) 请求您的服务器使用 ExclusiveStartKey = arr[ page - 1]获取下一页
在获取每个页面后,您必须使用和变量来管理Back&Next按钮何时可用于单击。arr[]page
| 归档时间: |
|
| 查看次数: |
2451 次 |
| 最近记录: |