【问题标题】:Pagination in DynamoDB nodejsDynamoDB nodejs 中的分页
【发布时间】:2022-01-31 21:41:14
【问题描述】:

我想知道如何以最有效的方式在 AWS Dynamodb 数据库中进行分页。我找到了一些使用ExclusiveStartKey 的解决方案,如下所示:

var params = {  
        "TableName"                 : "abcd",
        "ExpressionAttributeNames"  : {"#someexperssion":"someexperssion"},
        "ExpressionAttributeValues" : {":someexperssion" : "value"},
        "Limit"                     : 20,
        "ExclusiveStartKey"         : {"id": "9ee10f6e-ce6d-4820-9fcd-cabb0d93e8da"}
    };

我发现这些解决方案的问题是你总是必须知道最后一个键ExclusiveStartKey。当我只想检索第 4 页的 10 个项目时,是否必须查询第 4 页之前的所有项目才能知道最后一个键是什么?

我只想在尝试获取第 n 页时访问数据库一次。这可能吗?

谢谢大家!

【问题讨论】:

    标签: node.js amazon-web-services pagination amazon-dynamodb aws-sdk-nodejs


    【解决方案1】:

    好吧,您可以使用应用程序读取机制的全局二级索引来实现您自己的自定义分页。拥有一个专门用于读取分页数据的 GSI 将消除在 DynamoDB 的本机实现中读取先前页面的需要。

    这样做的缺点是您必须实现一个可靠的分页系统,并且它可能会在分组应将哪个批次分组在一起方面带来挑战,如果您的团队工作和开发时间不那么痛苦的话不是问题,可能是您正在寻找的。​​p>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-01-04
      • 1970-01-01
      • 2020-12-16
      • 1970-01-01
      • 2020-09-02
      • 1970-01-01
      • 2023-03-31
      相关资源
      最近更新 更多