DynamoDB - Не удается получить следующую страницу результатов при запросе GSI с использованием LastEvaluatedKey

У меня есть таблица с записями продаж. Первичным ключом является идентификатор квитанции, и существует GSI, называемый кампанией.

Когда я запрашиваю индекс кампании для всех записей о продажах, принадлежащих этой кампании, я получаю LastEvaluatedKey в ответе. Например, LastEvaluatedKey будет выглядеть так:

LastEvaluatedKey:{ 
  campaign: '54dc8f29-e310-42a5-a7cb-0bee084cde2d',
  receipt: 'fb06160a-f73c-4ad7-aeeb-84bf94c1cbe8' 
}

Когда я впоследствии использую этот LastEvaluatedKey в запросе для следующей страницы, никакие записи не возвращаются. Я строю свои параметры запроса следующим образом:

const params = {};
params.TableName = "sale";
params.IndexName = "campaign";
params.KeyConditionExpression = 'campaign = :campaign';
params.ExpressionAttributeValues = {
    ':campaign': campaign
};
params.Limit = Number(pageSize) > 100 ? 100 : Number(pageSize);
params.ExclusiveStartKey = pageKey;

return DynamoDB.query(params).promise()

Я не уверен, что происходит с ExclusiveStartKey. Я неправильно настраиваю параметры запроса? Я передаю точную вещь, которую предыдущий запрос произвел как LastEvaluatedKey. Я, наверное, упускаю что-то супер очевидное, но любая помощь приветствуется.

0 ответов

Другие вопросы по тегам