Динамо дБ нумерация страниц - PullRequest
0 голосов
/ 10 мая 2019

Я хочу использовать нумерацию страниц в DynamodB, используя aws-sdk DocumentClient() Я использую node.js.

Что я хочу сделать, так это получить первые 10 элементов, а затем вернуть эти значения пользователю. После этого пользователь делает новый запрос, в котором он указывает серверу начать с 10, а сервер получает остальные 10 с 10 до 20 и возвращает ответ обратно. Я попробовал LastEvaluatedKey Но мой сценарий другой. Есть ли способ, которым я могу сказать DynamodB начать с конкретного элемента, например, 1, а затем установить Limit: 10.

1 Ответ

0 голосов
/ 10 мая 2019

Я нашел способ обойти это.Вам необходимо получить 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;
    }
...