位置: 编程技术 - 正文

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

  • 什么情况下不能做近视激光手术
  • 什么是增值税征免年限
  • 非拒付追索待清偿是什么意思
  • 建筑公司租赁费会计分录
  • 小规模纳税人利润如何缴税
  • 企业所得税税款可以扣除吗
  • 进项税额转出借贷
  • 企业为什么产生
  • 固定资产不提折旧怎么算
  • 塔吊基础属于哪一类
  • 汇兑损益结转贷方怎么调整到借方
  • 会计凭证的内容中应包括会计分录
  • 收购发票怎么做凭证
  • 不能计入外购固定资产成本的相关税费
  • 商品溢余做销售的会计分录怎么写?
  • 处理固定资产需要交企业所得税吗
  • 开餐饮发票的经营范围是怎样的?
  • 营改增后企业所得税不能跨年
  • 免税销售额扣除项目本期实际扣除额
  • 市政配套费交给哪个部门
  • 增值税扣款凭证包括
  • 没有进项开销项发票是虚开发票吗
  • 个人所得税减免申请
  • 专票当月开的能作废吗
  • 填制和审核凭证是什么意思
  • 法院执行费怎么收取法律依据
  • 审计报告报备流程
  • 固定资产注资后怎么做账
  • 我国的社会保险费
  • 什么是汇兑损益,汇兑损益产生的原因有哪些?(10分)
  • 个人开发是什么意思
  • 完税证明和纳税申报表是一种东西吗
  • 员工的出差补贴计入什么科目
  • 男人喜欢什么样的女人最容易动心
  • Element-UI--<el-switch>的@change回调函数的参数用法
  • 选择简易计税方法计税的有
  • 发票上可以盖财务专用章和发票专用章吗
  • php返回函数值的关键字
  • 资产处置损益要写明细账吗
  • php常用数组函数和用法
  • vuescan怎么安装
  • github账号在哪里看
  • 大语言模型集成工具
  • lsattr命令不存在
  • 现代服务业加计抵减最新政策2022
  • 防伪税控技术服务费订单号怎么查
  • 公司股东与公司往来怎么处理
  • 固定资产清理需要交企业所得税吗
  • 现金流量表的填写说明
  • dedecmsv6插件不能用
  • 平价转让股权怎么做账
  • 个税代扣代缴手续费返还需要缴纳增值税吗
  • 产品广告费属于什么会计科目类别
  • 一般纳税人的增值税税率
  • 主营业务利润和利润总额
  • 劳务发票税率最新标准
  • 车船税交不交印花税
  • 租金摊销会计分录
  • 汇算清缴需要做账吗
  • 免抵退怎么理解
  • 水费发票上的册子是什么
  • 公司买车贷款要看法人征信吗
  • 如何学会计做账视频
  • sqlserver批量备份数据库
  • MySQL 5.6 (Win7 64位)下载、安装与配置图文教程
  • mysql怎么取消密码
  • window10系统电脑配置
  • centos control-d
  • win7系统安装不了软件怎么办
  • cocos2djs
  • jquery常用操作
  • javascript代码用什么来标记
  • python模板引擎开发
  • 高通芯片基于arm吗
  • 从重置手
  • express后端
  • 国家税务总局政策法规司
  • 非道路机械环保标志图片
  • 补充协议交印花税嘛
  • 别墅与普通住宅的优缺点
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设