使用DynamoDB扫描的条件分页

时间:2016-10-27 14:10:03

标签: amazon-web-services amazon-dynamodb

我有一个人员列表,所有人都有字段cityName

Person {
  id: ...
  name: ...
  cityName: ...
}

我想使用DynamoDB运算符LimitExclusiveStartKey对列表进行分页。这很好用,但是当我想对来自fx,'伦敦'

的用户进行分页时,我遇到了麻烦。

cityName: 'London'

我试图添加以下内容:

FilterExpression: 'cityName = :x',
ExpressionAttributeValues: {
  ':x': 'London'
}

但这只是在扫描完成后删除不匹配的。我希望在扫描发生之前过滤

我有什么方法可以实现这个目标吗?

1 个答案:

答案 0 :(得分:0)

我发现query方法是该方法的正确方法。所有scan过滤都是在完成从数据库中提取后完成的,因此永远不会有效。

我希望这可以帮助其他人:

const cityName = 'London'

const params = {
  TableName: 'Person',
  Limit: 5,
  IndexName: 'cityName-index',
  KeyConditionExpression: 'cityName = :x',
  ExpressionAttributeValues: {
    ':x': cityName
  }
}

// For pagination add the "ExclusiveStartKey" key to params