位置: 编程技术 - 正文

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

  • 如何申请一般纳税人
  • 印花税纳税义务人有哪些
  • 增值税普通发票有什么用
  • 出口货物退(免)税管理办法
  • 公积金贷款金额少怎么办
  • 应交税费进项税额属于什么科目借贷方向
  • 建筑业机械设备是指什么
  • 关于年底双薪和分红问题的处理
  • 工业企业制造费用具体怎么摊
  • 缴交社保基金会计分录怎么写?
  • 汽车区域差价
  • 水利建设专项收入怎么报税
  • 不应抵扣的进项税抵扣了怎么办
  • 公司收内部职工停车费如何确认收入?
  • 商铺租金收入交什么税一共多少个点
  • 加油的时候可以开发票吗
  • 所得税汇算清缴调整项目
  • 劳务税能不能抵扣
  • 7月1日后通用机打发票纳税人识别号怎么填?
  • 增值税缴纳计入成本吗
  • 银行呆帐坏账
  • win10系统没有声卡驱动
  • win10打印机驱动在电脑哪里找
  • php str函数
  • PHP:session_register()的用法_Session函数
  • 增值税中非经营活动包括哪些
  • php实现的链式队列是什么
  • .ini是什么类型文件?
  • win7资源管理器叫什么
  • wordpress采集教程
  • php中ajax
  • element-ui表格
  • 埃莫尔斯
  • 零星采购无票怎么办
  • 【swinUnet官方代码测试自己的数据集(已训练完毕)】
  • 微信公众号开发php源码
  • 语谱图生成
  • ssl查询网站
  • 新的企业所得税
  • 研发费用加计扣除新税收政策
  • 达到规定数量赠送实物,如何开票
  • 员工宿舍的物业费要交个税吗
  • 无发生额有没有对账单
  • 织梦如何采集文章
  • python最小正整数
  • sql server游标
  • 运输费抵扣进项税怎么算
  • 事业单位以固定工资为准
  • 库存商品入库的会计分录怎么写
  • 非盈利组织固定资产金额标准最新规定
  • 什么叫递延收益和其他收益
  • 企业收到的财政性补贴要交企业所得税吗
  • 车辆违章有几种处理方法
  • 发票备注栏填写内容
  • 简单介绍清明上河图
  • mysql 表分区
  • xp如何把ie浏览器设置为默认浏览器
  • win10系统关闭防火墙服务
  • win10关闭系统服务
  • 强缓存标志
  • 怎样查看windows10版本
  • win7系统打印机共享给win10
  • win7旗舰版系统激活密钥
  • cocoscreator lua
  • opengl sharder
  • js里的this
  • 批处理判断一个文件是否存在
  • python3 栈
  • java script教程
  • python的threadpool
  • vue3.0diff
  • js的select
  • JavaScript数据类的特点
  • Android as Bluetooth Low Energy Peripherial (GATT server).
  • android 多页面
  • androidapk网站
  • 税务案件移送案件的法律条款
  • 个体工商户个人所得税
  • 安徽省国家税务局网上办税平台
  • 财政资金存在问题
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设