MongoEngine分页:Python负索引切片兼容多页的一行解决方案
MongoDB分页优化(MongoEngine)解决方案
核心思路
利用Python切片的左闭右开特性,结合条件判断处理page_nb=1的特殊场景,无需手动补充元素即可实现高效分页。
Pythonic一行解决代码
page_items = values[-page_nb*items_per_page : -(page_nb-1)*items_per_page] if page_nb > 1 else values[:items_per_page]
逻辑说明
- 当
page_nb > 1时:通过负索引定位当前页的首尾位置,-page_nb*items_per_page是起始负索引,-(page_nb-1)*items_per_page是结束负索引,左闭右开的切片规则刚好取到items_per_page条数据 - 当
page_nb=1时:直接取列表前items_per_page条数据,规避负索引出现-0导致的切片错误
验证示例(以items_per_page=15为例)
page_nb=1:切片为values[:15],获取最新的15条数据page_nb=2:切片为values[-30:-15],获取第16至30条数据(共15条)
内容的提问来源于stack exchange,提问作者AlixL
相关产品推荐
相关产品推荐

