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. Я, наверное, упускаю что-то супер очевидное, но любая помощь приветствуется.