Mongo 分页判断是否有下一页

一、遇到的问题

Mongo查询列表,limit=15,代码里是直接取了15条,分页判断是否有下一页是根据返回的15条和limit=15判断的,这就导致数据库里正好有15条时,返回的15条和limit=15判断,isCompleted是false,返回的是还有下一页,其实正好15条是没有下一页的。

二、解决

考虑到性能,不想要再单独查一次数据库的总条数;

最后使用的方案是:

一页是limit=15,查询时直接查询limit+1条,返回数据时再把多查的那一条数据slice截取掉,这样返回的依旧是15条,判断是有还有下一页时便可以通过limit+1条来判断是否有下一页,完美的解决了是否有下一页和性能问题。

php 复制代码
$result = $data->getList($fromAccount,$toAccount,$nextid,$tempLimit,$sliceTime);
$tempResuleLen = sizeof($result);
if($result){
	$result = array_slice($result,0,$limit);
	krsort($result);//倒序
	$result = array_values($result);

}
$return['list'] = $result;
$return['isCompleted'] = $tempResuleLen <= $limit ? true : false;
相关推荐
桃花键神13 分钟前
【2026精品项目】基于SpringBoot3+Vue3的旧物置换系统(包含源码+项目文档+SQL脚本+部署教程)
数据库·spring boot·sql·vue
.柒宇.37 分钟前
Redis高频面试题与跳跃表原理详解
数据库·redis·缓存
Bryce学亮1 小时前
股票数据成本分析工具
数据库
思麟呀1 小时前
MySQL表的约束
数据库·mysql
步十人1 小时前
【FastAPI】ORM-02.使用 ORM 高效处理数据库逻辑
服务器·数据库·fastapi
Apache IoTDB1 小时前
时序数据库 IoTDB + 时序智能服务平台 TimechoAI 亮相中国核电信息技术高峰论坛
数据库·时序数据库·iotdb
未若君雅裁1 小时前
Redis 和 MySQL 双写一致性:延迟双删、读写锁、MQ、Canal 怎么选?
数据库·redis·面试
罗超驿2 小时前
9.深度剖析MySQL约束的工程设计:自增主键的分布式局限、外键约束的权衡,与CHECK的版本适配实践
数据库·mysql
Kiyra2 小时前
Agent 的记忆不是存数据库就行:上下文预算与轻量记忆的设计实战
数据库·人工智能·后端·面试·职场和发展·哈希算法
jiayong232 小时前
MySQL 8.0 数据库恢复问题完整解决方案
数据库·mysql