mongoDB实现分页的方法
发布时间 - 2026-01-11 01:45:21 点击率:次mongoDB的分页查询是通过limit(),skip(),sort()这三个函数组合进行分页查询的。

下面这个是我的测试数据
db.test.find().sort({"age":1});
第一种方法
查询第一页的数据:db.test.find().sort({"age":1}).limit(2);
查询第二页的数据:db.test.find().sort({"age":1}).skip(2).limit(2);
查询其他页数以此类推。。。
第二种方法
查询第一页的数据:db.test.find().sort({"age":1}).limit(2);
跟上面的第一种方法一样的。
查询第二页的数据:
这个是获取第一页最后一条记录的值,然后排除前面的记录,就能获取到新的记录了
总结来说,如果数据量不是很大的话,可以使用第一种方法,毕竟比较简单,如果数据量比较大的话,使用第二种方法比较好,因为这样就可以不用到skip()这个函数,skip跳过太多的记录,效率有点低
经过认真的考虑,第二种方法确实不适合跳页,而且效率也不是很高
对于海量数据的话,我们要做些特殊的处理,
有以下2种方法
第一种方法
限制分页的页数,类似百度的百度的分页处理,只是显示前面的七百多条记录,这样的就不用考虑性能的问题了,毕竟一般人都只是翻到前面十页,就找到自己需要的了
后面的统计结果应该是估算出来的,根据查出来的这些记录所占的比例估算出总的记录数
第二种方法
我们可以这样做,假设是根据id排序的,我们可以id跟id所在的页数的序号存到redis/MemberCached中,
就像这样,假设每一页有10条记录
id page
1 1
2 1
。。。
10 1
11 2
12 2
。。。。
20 2
这样我们查第一页的时候就能直接取出十条数据
假设有1亿条数据,一条记录id占4个字节,其他信息的占一个字节,一条记录就占5个字节
1 0000 0000 *5/(1024*1024)=476MB
这种做法使用空间换时间,一般数据库查询的时间大多花在跟数据库的连接上,放在缓存中,可以大大加快查询的速度
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# mongoDB
# 分页
# node.js基于mongodb的搜索分页示例
# Java操作MongoDB模糊查询和分页查询
# MongoDB 使用Skip和limit分页
# 高效mongodb的php分页类(不使用skip)
# mongoDB分页的两种方法(图例)
# 种方法
# 第一页
# 就能
# 我们可以
# 放在
# 太多
# 就像
# 以此类推
# 很高
# 要做
# 这样做
# 比较好
# 可以使用
# 不适合
# 所占
# 这三个
# 第二种
# 第一种
# 跳过
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
EditPlus中的正则表达式 实战(2)
Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】
Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧
安克发布新款氮化镓充电宝:体积缩小 30%,支持 200W 输出
Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复
Laravel如何为API编写文档_Laravel API文档生成与维护方法
如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)
如何在 React 中条件性地遍历数组并渲染元素
大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?
php做exe能调用系统命令吗_执行cmd指令实现方式【详解】
悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音
用yum安装MySQLdb模块的步骤方法
使用Dockerfile构建java web环境
Android滚轮选择时间控件使用详解
如何在阿里云香港服务器快速搭建网站?
Laravel集合Collection怎么用_Laravel集合常用函数详解
Laravel怎么定时执行任务_Laravel任务调度器Schedule配置与Cron设置【教程】
Laravel怎么在Controller之外的地方验证数据
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
Python文件流缓冲机制_IO性能解析【教程】
html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】
Laravel Session怎么存储_Laravel Session驱动配置详解
北京网站制作公司哪家好一点,北京租房网站有哪些?
如何在景安服务器上快速搭建个人网站?
智能起名网站制作软件有哪些,制作logo的软件?
如何在阿里云高效完成企业建站全流程?
Win11怎样安装网易有道词典_Win11安装词典教程【步骤】
成都网站制作公司哪家好,四川省职工服务网是做什么用?
Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案
如何在阿里云虚拟主机上快速搭建个人网站?
Laravel如何记录自定义日志?(Log频道配置)
EditPlus中的正则表达式 实战(1)
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
如何用VPS主机快速搭建个人网站?
如何在不使用负向后查找的情况下匹配特定条件前的换行符
在线制作视频的网站有哪些,电脑如何制作视频短片?
javascript中对象的定义、使用以及对象和原型链操作小结
LinuxShell函数封装方法_脚本复用设计思路【教程】
高防网站服务器:DDoS防御与BGP线路的AI智能防护方案
Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】
高端企业智能建站程序:SEO优化与响应式模板定制开发
Laravel PHP版本要求一览_Laravel各版本环境要求对照
微信公众帐号开发教程之图文消息全攻略
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
Laravel安装步骤详细教程_Laravel环境搭建指南
jQuery中的100个技巧汇总
网站制作大概多少钱一个,做一个平台网站大概多少钱?
如何获取免费开源的自助建站系统源码?
如何用IIS7快速搭建并优化网站站点?
如何利用DOS批处理实现定时关机操作详解

