我有一个人员列表,所有人都有字段cityName
:
Person {
id: ...
name: ...
cityName: ...
}
我想使用DynamoDB运算符Limit
和ExclusiveStartKey
对列表进行分页。这很好用,但是当我想对来自fx,'伦敦'
cityName: 'London'
我试图添加以下内容:
FilterExpression: 'cityName = :x',
ExpressionAttributeValues: {
':x': 'London'
}
但这只是在扫描完成后删除不匹配的人。我希望在扫描发生之前过滤 。
我有什么方法可以实现这个目标吗?
答案 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