DynamoDB-使用LastEvaluatedKey在GSI上查询时无法获得结果的下一页

时间:2018-08-08 08:05:21

标签: amazon-dynamodb documentclient

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

0 个答案:

没有答案