node.js - Dynamo 数据库分页

标签 node.js amazon-dynamodb dynamodb-queries

我想使用 aws-sdk 在 dynamodb 中使用分页 DocumentClient() 我正在使用node.js。

我想要做的是获取前 10 项,然后将这些值返回给用户。在该用户发出新请求后,他告诉服务器从 10 开始,服务器从 10 到 20 获取其他 10 个,然后返回响应。我已经尝试了 LastEvaluatedKey 但我的情况有所不同。有什么方法可以告诉 dynamodb 从特定项目开始,例如 1,然后设置 Limit: 10

最佳答案

我找到了解决这个问题的方法。您需要从 dynamodb 响应中获取 LastEvaluatedKey 并将其发送回前端,然后您的前端应在参数中发送 LastEvaluatedKey,您可以将其用作 ExclusiveStartKey

getItems(pageSize, lastItem?) {
    try {
      const params = {
        TableName: 'User',
        Limit: pageSize,
      };
      if (lastItem) {
        params.ExclusiveStartKey = { item_id: lastItem};
      }
      const response = await dynamoDb.scan(params).promise();
      return {
         items: response.Items,
         lastItem: response.LastEvaluatedKey
      }

    } catch (error) {
      throw error;
    }

关于node.js - Dynamo 数据库分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56074919/

相关文章:

database - DynamoDB 如何设计和查询多个字段

javascript - 在 Typescript 中克隆对象,从 Flow 迁移

javascript - 创建新闻提要的概念

javascript - Express.js - 从 MySQL 数据库检索一行

amazon-web-services - 将报告数据临时存储到 AWS DynamoDB 上?这是一个可行的解决方案吗?

java - 根据 ID 和列表中的另一个 ID 查找记录

amazon-dynamodb - dynamodb 对不在列表中的值进行过滤

javascript - 在 Node 中通过 Prototype 访问变量的值

amazon-web-services - DynamoDB Between GSI 查询无法按预期工作

amazon-dynamodb - 在 DynamoDB 中建模关系数据(嵌套关系)