Sud*_*fle 0 python django boto amazon-web-services amazon-dynamodb
我的数据库中有大约5000多个视频,我创建了一个页面http://mysite.com/videos列出所有视频.现在我正在实施分页,因此每页只列出20个视频.例如
http://mysite.com/videos?page=1显示前20个视频,http://mysite.com/videos?page = 2显示接下来的20个视频.
我在选择实现分页的最佳方法时遇到问题.我想过每次执行新页面时都使用table.scan(),然后根据Python代码的某些逻辑选择只需要.但这似乎相当昂贵.
我正在使用Python/Django和boto库.
在Dynamo中,您可以通过设置限制来执行查询.来自以下文件:
http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Query.html
你可以阅读:
Run Code Online (Sandbox Code Playgroud)ExclusiveStartKey
此操作将评估的第一个项的主键.使用上一操作中为LastEvaluatedKey返回的值.
ExclusiveStartKey的数据类型必须是String,Number或Binary.不允许设置任何数据类型.
Run Code Online (Sandbox Code Playgroud)Type: String to AttributeValue object map Required: No
和
Run Code Online (Sandbox Code Playgroud)Limit
要评估的最大项目数(不一定是匹配项的数量).如果Amazon DynamoDB在处理结果时处理的项目数量达到限制,它将停止操作并返回到该点的匹配值,并在后续操作中应用LastEvaluatedKey,以便您可以选择离开的位置关闭.此外,如果在Amazon DynamoDB达到此限制之前处理的数据集大小超过1 MB,它将停止操作并将匹配值返回到限制,并在后续操作中应用LastEvaluatedKey以继续操作.有关更多信息,请参阅Amazon DynamoDB开发人员指南中的查询和扫描.
Run Code Online (Sandbox Code Playgroud)Type: Number Required: No
您不提供有关表格键的结构的任何信息.但是,方法是查询表中与您的键匹配的元素(如果合适,则为范围键),限制设置为20.在结果中,您将收到一个"LastEvaluatedKey",您将不得不使用它查询,再次将限制设置为20.