位置: 编程技术 - 正文

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简单使用)

  • 税金及附加怎么来的
  • 进口关税计算公式 案例
  • 进项税转出大于进项税额还需要填列加计抵减附表吗
  • 存款利息收入需要缴纳所得税吗
  • 财务软件计提所得税分录
  • 制造费用的借方和贷方各表示什么
  • 非公益捐赠如何调整应纳税所得额?
  • 印花税工会经费会计分录
  • 个人与个人之间转账有限额吗
  • 增值税专用发票有效期是多长时间
  • 装修公司一般纳税人纳税标准
  • 小规模纳税人应纳税额减征额怎么算
  • 抵税必须要有发票
  • 应收账款的周转率怎么算
  • 员工生日福利申请
  • 软件企业研发费用占比要求
  • 一般纳税人减免的增值税怎么记账
  • 有限责任公司的人员构成
  • 购买所有物品都是可以退货吗
  • 王者荣耀中吕布的克星
  • 行政单位如何将资产年报导入财报里
  • php新手入门
  • 库存商品的主要类型
  • 什么叫存量房转移登记
  • 劳动保护经费
  • 变动成本产品成本包括哪些
  • Access-Control-Expose-Headers 响应报头、跨域 公开响应头
  • php多文件上传代码
  • 刷题是啥意思啊
  • 我用ChatGPT做直播技术选型,卷死了同事
  • 美国人用什么英语词典
  • css代码怎么在浏览器运行
  • 挂靠方项目部账务是否并入被挂靠方公司账务?
  • 支付中间人佣金违法吗
  • 停车费计税
  • 金税盘一定要交费吗
  • 季度企业所得税资产总额怎么填
  • 不单独计价的包装物押金计入什么科目
  • CentOS 7下MySQL服务启动失败的快速解决方法
  • 固定资产清理税务处理
  • 收付实现制的适用范围
  • 买水果送水果这样营销可以吗
  • 园林绿化企业属于什么行业
  • 购进业务:从国内购进生产用原材料
  • 预收账款和预付账款都属于负债类科目
  • 个人的钱转到公司账上
  • 收到工会经费怎么指定现金流入
  • 净利润增长率的影响因素
  • 年底结账会计要怎么做账
  • 转账时转错账号怎么办
  • 以前年度损益调整借贷方向
  • 价税分离怎么算
  • 差旅费报销单怎么填写
  • 私营公司的钱怎么拿出来
  • sql server2008启动
  • sql2008数据库置疑
  • 使用u盘安装win10
  • 优盘安装系统
  • xp系统怎么添加我的电脑到桌面
  • win7下安装XP
  • win10打开文件夹弹出新窗口
  • 苹果Mac系统怎么安装
  • macos catalin
  • printnow.exe - printnow是什么进程 有什么作用
  • 飞信安卓下载
  • linux使用vi编辑文件
  • 删除同步中心图标
  • eclipse怎么创建安卓
  • 拦截器 aop
  • Node.js中的核心模块包括哪些内容?
  • 支付宝是怎么写
  • android+
  • Android studio DrawerLayout
  • js中dom的用法
  • Python cx_freeze打包工具处理问题思路及解决办法
  • js中面向对象编程
  • amd模拟intel
  • 四川省国家税务局电子税务局
  • 发票查询打印如何操作
  • 电子湖北税务局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设