位置: 编程技术 - 正文

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

  • 一人在两家公司上班怎么缴纳个税
  • 工地工贸药品入库流程
  • 收取商标权使用费分录
  • 垃圾袋发票类别是什么
  • 预算会计工资是应发工资还是实发工资
  • 酒店收取的赔偿费是什么
  • 划转税务的非税收入2023
  • 发票大头小尾什么意思
  • 现金流量表关注指标
  • 购买办公楼支付相关手续费
  • 实验用原材料的会计处理
  • 事业单位利息收入
  • 什么时候需要交个人所得税
  • 房地产母公司将其土地变更到其全资子公司
  • 核定征收印花税的计税依据是否含税
  • 不能取得进项发票但结转成本,税务说明怎么写
  • 查验发票真伪新旧有哪些网站?
  • 关于增值税专用发票
  • 建筑企业财务制度及规范流程
  • 哪些进项税不能加计抵减
  • 行政事业单位会计基础工作规范
  • 自然人税收申报显示申报失败:未选择纳税人
  • 资产负债率70%说明长期偿债能力
  • 车辆违章罚款怎么入账
  • 税务申报系统叫什么
  • 交易性金融资产的账务处理
  • 承租人交付房屋标准
  • 个人所得税的税率是多少
  • mac电脑command键快捷设置
  • 监理费的付款比例
  • 实收资本可以大于注册资本吗
  • win7系统中怎样没有智能卡这一选项
  • 电脑bios错误怎么办
  • 行政事业单位预算由收入预算、支出预算组成
  • 逾期未申报如何申报
  • 库存现金盘盈怎么做分录
  • 支付征地补偿款计入什么科目
  • php魔术函数
  • 出差有补贴
  • 外币交易是什么意思
  • 股东无偿投入的土地需要摊销吗
  • 废旧物资经营单位增值税税率
  • 猿创部落科技有限公司
  • 募股方案
  • 不应确认增值税销项税额的
  • 资产类账户有哪些
  • 房产税一般在哪缴纳
  • 收到捐赠的账务处理和涉税处理
  • 公司租用员工车辆维修费能报销吗
  • 哪些发票不能开专票
  • 科目汇总表账务处理程序登记总账的依据是
  • 年数总和法净残值怎么算
  • mysql添加myini
  • windows如何创建桌面快捷方式
  • winxp系统打不开
  • windows2008r2修改密码
  • windowsxp开机启动项在哪里设置
  • Linux Container(LXC容器)的基本命令使用简介
  • linux常用基本命令pwd
  • 搜狗浏览器ie8
  • window10路由
  • 装win8.1
  • 利用命令查看虚拟机的信息
  • nodejs静态编译
  • 请问在javascript程序中
  • 一键删除通讯录联系人
  • js excel解析
  • nodejs深入浅出pdf百度云
  • js date对象构造方法
  • js校验姓名
  • 理解js绑定事件是什么
  • android单选
  • js面向对象编程实例
  • python3中raw_input的用法
  • python3 re
  • 怎么查税务专管员是谁的名字
  • 广州税务局前局长是谁
  • 重庆市房产交易信息网
  • 开具红字增值税专用发票通知单
  • 2023浙江高考首考状元
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设