位置: 编程技术 - 正文

MongoDB快速翻页的方法(mongodb分页查询count太慢)

编辑:rootadmin

推荐整理分享MongoDB快速翻页的方法(mongodb分页查询count太慢),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:mongotemplate 分页查询,mongodb页面,mongodb view,mongodb页面,mongodbtemplate分页,mongodb分页查询语句,mongodbtemplate分页,mongodb页面,内容如对您有帮助,希望把文章链接给更多的朋友!

翻阅数据是MongoDB最常见的操作之一。一个典型的场景是需要在你的用户界面中显示你的结果。如果你是批量处理的数据,同样重要的是要让你的分页策略正确,以便你的数据处理可以规模化。

接下来,让我们通过一个例子来看在MongoDB中翻阅数据的不同方式。在这个例子中,我们有一个CRM数据库的用户数据,我们需要通过翻阅浏览和在同一时间显示个用户。所以实际上,我们的页面大小是。下方是我们的用户文档的结构:

方法一:Using skip() 和 limit()

MongoDB本身支持分页操作使用 skip() 和 limit() 指令。skip(n)指令告诉MongoDB,它应该跳过“n”结果和limit(n)指令指示MongoDB,它应该限制结果长度为“n”结果。通常情况下,你将使用 skip() 和 limit() 指令,但为了说明情况,我们提供了控制台命令,这样也能达到相同的结果。同时,为了代码比较简洁,限制检查代码被排除在外。

MongoDB快速翻页的方法(mongodb分页查询count太慢)

一般来说,检索页面n,代码是这样的:

db.users.find().skip(pagesize*(n-1)).limit(pagesize)然而,随着数据的大小增加,这种方法出现严重的性能问题。其原因是在每次执行查询时,建立了完整的结果集,那么服务器必须从收集的开始走到指定的偏移量。当偏移量增加时,这一过程会变得越来越慢。同时,这个过程没有有效地使用索引。所以,当你有较小的数据集时,典型的“skip() ”和“ limit() ”的方法是有用的。如果您正在使用大数据集,您需要考虑其他方法。

方法二:Using find() 和limit()

以前的方法不能很好扩展其原因是skip() 命令。因此,本节的目标是实现分页不使用skip()命令。为此,我们将利用在存储数据中的自然顺序,比如时间戳或文档中存储的标识。

在这个例子中,我们将使用“_id”存储每个文档。“_id”是一个MongoDB 的ObjectID结构,即 字节结构包含了时间戳、机械加工、进程标识符、计数器等。总体思路如下 :

检索当前页中的最后一个文档 _id在下一个页面检索文件大于此”_id”

这种方法利用内在的规则存在_id字段。也因为“_id”字段是默认的查找操作,它是非常好的性能指标。如果你使用的字段没有被索引,那么你在操作中会受到困扰,所以确保字段被索引是非常重要的。

同样,如果你希望数据按照特定顺序进行排序分页的话,那么你还可以使用sort()条款与上述技术。重要的是要确保排序过程是利用索引来获得最佳性能。您可以使用.explain()后缀来查询。

标签: mongodb分页查询count太慢

本文链接地址:https://www.jiuchutong.com/biancheng/312541.html 转载请保留说明!

上一篇:MongoDB 学习笔记(一)-MongoDB配置(mongodb 教程)

下一篇:MongoDB快速入门笔记(六)之MongoDB删除文档操作(mongodb简单使用)

  • 个所税包括什么
  • 收益性支出包括哪些内容
  • 边际贡献总额分析法的收入为零
  • 所得税季报填错了已经申报了
  • 定额备用金制度有哪些
  • 研发费用的台账有哪些
  • 调整以前年度多计提的工资
  • 买标书怎么做分录
  • 新25项工资薪金是什么
  • 公账转私账可以撤销吗
  • 客户退回货物会计分录
  • 印花税退款分录
  • Linux系统怎么调整屏幕亮度
  • 股息红利纳税义务发生地
  • win10系统升级软件
  • window10最新20h2
  • 收到折扣发票怎么处理
  • 印花税计税依据及计算方式
  • win7为什么这么多人用
  • php如何实现字符串反转
  • php中变量有哪些基本数据类型?
  • 一年以上预收账款
  • 没有了睡眠功能
  • 房地产业务招待费
  • php ftp功能
  • 成本核算的基本程序是什么
  • 其他应付款结转什么科目
  • powergenie是什么程序
  • 木鱼的电脑
  • 生产设备改良支出计入什么费用
  • 去噪扩散概率模型
  • vue动态绑定class的方法
  • 工程项目成本核算的依据主要有
  • php的时间戳
  • 增值税农产品免税是哪一条
  • 本月增值税申报截止日
  • phpcms建站流程
  • mongodb exception: $concat only supports strings, not NumberInt32解决办法
  • 在建工程转入固定资产怎么做
  • 农副产品免税了还需要缴纳个人所得税吗
  • 支票的法人章盖倒了了可以吗
  • 进项的加计抵减怎么算
  • 开票机号可以随便填吗
  • 出口产品报关单
  • 保函保证金怎么入账
  • 计提工资的核算流程
  • 工程年底结账
  • 增值税附加税有哪些
  • 代收通行费不征税吗
  • 财产租赁合同印花税计税依据
  • 会计科目费用类
  • 预缴增值税什么科目
  • 资本公积可用于弥补企业亏损
  • 新企业办理金税盘流程
  • 新公司建立 需要先做哪行
  • 建筑施工企业会计分录大全
  • mysql中的groupby
  • mysql通过find_in_set()函数实现where in()顺序排序
  • mysql8 递归
  • 安装Win8 64位旗舰版系统提示“windows无法安装到这个磁盘”的故障分析及解决方法
  • 解决windows update问题
  • Windows Server 2008疑难杂症
  • xp系统插u盘没反应怎么解决
  • asmproserver.exe是什么进程 asmproserver进程信息查询
  • 注册表重新注册命令
  • win8n
  • win10系统安装搜狗输入法很慢
  • win10正式版多少钱
  • JavaScript的Ext JS框架中的GridPanel组件使用指南
  • nodejs不再维护
  • 深入linux内核架构与底层原理 pdf
  • Android platform build guide for Exynos-4412(odroid -X/X2/U2/U3/Q2/Q)
  • linux中使用最多的命令
  • js递增数字
  • OnBecameVisible和OnBecameInvisible ,OnWillRenderObject
  • jquery中加载文档的方法
  • 写给小白的情书
  • 反编译android动态库
  • 城市基础设施配套费由哪个部门收取
  • 湖北省税务局网站授权
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设