Dynamo 数据库分页
Dynamo db pagination
我想使用 aws-sdk 在 dynamodb 中使用分页 DocumentClient()
我正在使用 node.js.
我想要做的是获取前 10 个项目,然后 return 这些值给用户。在该用户发出新请求后,他告诉服务器从 10 开始,服务器从 10 到 20 获取其他 10,然后返回 return 响应。我试过 LastEvaluatedKey
但我的情况不同。有什么方法可以告诉 dynamodb 从特定项目开始,例如 1,然后设置 Limit: 10
.
我找到了解决这个问题的方法。您需要从 dynamodb 响应中获取 LastEvaluatedKey
并将其发送回 front-end 然后您的 front-end 应该在参数中发送 LastEvaluatedKey
并且您可以将其用作 ExclusiveStartKey
.
getItems(pageSize, lastItem?) {
try {
const params = {
TableName: 'User',
Limit: pageSize,
};
if (lastItem) {
params.ExclusiveStartKey = { item_id: lastItem};
}
const response = await dynamoDb.scan(params).promise();
return {
items: response.Items,
lastItem: response.LastEvaluatedKey
}
} catch (error) {
throw error;
}
使用 Limit
和 LastEvaluatedKey
进行分页是 DynamoDB 的常见做法,但重要的是要注意 Limit 不是结果集上返回的记录数;相反,这是在查询操作中分析的记录数。
查看有关查询和限制的 AWS 文档 属性:https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Query.html#API_Query_RequestSyntax
要评估的最大项目数(不一定是匹配项目数)。如果 DynamoDB 在处理结果时处理的项目数达到限制,它会停止操作和 returns 直到该点的匹配值,以及 LastEvaluatedKey 中的键以应用于后续操作,以便您可以从你离开的地方继续。此外,如果在 DynamoDB 达到此限制之前处理的数据集大小超过 1 MB,它会停止操作和 returns 达到限制的匹配值,以及 LastEvaluatedKey 中的一个键以在后续操作中应用以继续操作。有关更多信息,请参阅 Amazon DynamoDB 开发人员指南中的查询和扫描。
虽然这是一种普遍应用的分页解决方法,但它可能会导致大型数据集出现意外结果。
我想使用 aws-sdk 在 dynamodb 中使用分页 DocumentClient()
我正在使用 node.js.
我想要做的是获取前 10 个项目,然后 return 这些值给用户。在该用户发出新请求后,他告诉服务器从 10 开始,服务器从 10 到 20 获取其他 10,然后返回 return 响应。我试过 LastEvaluatedKey
但我的情况不同。有什么方法可以告诉 dynamodb 从特定项目开始,例如 1,然后设置 Limit: 10
.
我找到了解决这个问题的方法。您需要从 dynamodb 响应中获取 LastEvaluatedKey
并将其发送回 front-end 然后您的 front-end 应该在参数中发送 LastEvaluatedKey
并且您可以将其用作 ExclusiveStartKey
.
getItems(pageSize, lastItem?) {
try {
const params = {
TableName: 'User',
Limit: pageSize,
};
if (lastItem) {
params.ExclusiveStartKey = { item_id: lastItem};
}
const response = await dynamoDb.scan(params).promise();
return {
items: response.Items,
lastItem: response.LastEvaluatedKey
}
} catch (error) {
throw error;
}
使用 Limit
和 LastEvaluatedKey
进行分页是 DynamoDB 的常见做法,但重要的是要注意 Limit 不是结果集上返回的记录数;相反,这是在查询操作中分析的记录数。
查看有关查询和限制的 AWS 文档 属性:https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Query.html#API_Query_RequestSyntax
要评估的最大项目数(不一定是匹配项目数)。如果 DynamoDB 在处理结果时处理的项目数达到限制,它会停止操作和 returns 直到该点的匹配值,以及 LastEvaluatedKey 中的键以应用于后续操作,以便您可以从你离开的地方继续。此外,如果在 DynamoDB 达到此限制之前处理的数据集大小超过 1 MB,它会停止操作和 returns 达到限制的匹配值,以及 LastEvaluatedKey 中的一个键以在后续操作中应用以继续操作。有关更多信息,请参阅 Amazon DynamoDB 开发人员指南中的查询和扫描。
虽然这是一种普遍应用的分页解决方法,但它可能会导致大型数据集出现意外结果。