Как я могу сделать лимит DynamoDB после фильтрации?
Я хотел бы реализовать сканирование DynamoDB со следующей логикой:
Сканирование -> Фильтрация (логическое значение true или false) -> Ограничение (для разбиения на страницы)
Тем не менее, я смог реализовать сканирование только с помощью этой логики:
Сканирование -> Ограничение (для нумерации страниц) -> Фильтрация (логическое значение true или false)
Как мне этого добиться?
Ниже приведен пример, в котором реализована вторая логика сканирования:
var parameters = {
TableName: this.tableName,
Limit: queryStatement.limit
};
if ('role' in queryStatement) {
parameters.FilterExpression = '#role = :role';
parameters.ExpressionAttributeNames = {
'#role': 'role'
};
parameters.ExpressionAttributeValues = {
':role': queryStatement.role
};
}
if ('startKey' in queryStatement) {
parameters.ExclusiveStartKey = { id: queryStatement.startKey};
}
this.documentClient.scan(parameters, (errorResult, result) => {
if (errorResult) {
errorResult._status = 500;
return reject(errorResult);
}
return resolve(result);
});
Этот код работает как второй.
Сканирование -> Ограничение -> Фильтрация