Dynamo 数据库分页

Nou*_*had 1 node.js amazon-dynamodb dynamodb-queries

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

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

Nou*_*had 6

我找到了解决这个问题的方法。您需要LastEvaluatedKey从 dynamodb 响应中获取并将其发送回前端,然后您的前端应发送LastEvaluatedKeyin 参数,您可以将其用作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;
    }
Run Code Online (Sandbox Code Playgroud)