我有一个保存销售记录的表。主键是收据ID,并且有一个称为Campaign的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传递。我可能会错过一些非常明显的东西,但是可以提供任何帮助。