位置: 编程技术 - 正文

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

  • 国家税务登记证是什么样子的
  • 劳务公司在异地做项目需要提供当地完税证明
  • 劳务报酬和工资薪金哪个税率高
  • 管理费用贷方有哪些递减
  • 发票没用完可以申请超限量吗
  • 二房东转租需要备案吗
  • 管家婆进销存软件免费版
  • 员工工资怎么计算公式
  • 企业接到税务稽查局电话
  • 企业购车票可以抵扣增值税吗?
  • 哪些票据可以抵扣个人所得税
  • 工程已完工又发生了成本怎么处理
  • 年中入职个税怎么预扣
  • 如何在国税网站下载财务报表
  • 参加国外展会费用
  • 金融机构可以采取什么措施
  • 固定资产折旧和累计折旧的区别
  • 房屋租赁费属于什么服务
  • 冲暂估怎么做分录
  • 华为折叠手机mateXs
  • 工程咨询费用取费标准
  • php 守护进程
  • vue slot标签
  • 苹果mac os 10.4
  • mac系统怎么清除数据
  • PHP:Memcached::getDelayedByKey()的用法_Memcached类
  • 金融资产的要素有哪些?
  • yolov5解析
  • laravel批量insert
  • 资产收购的账务处理办法
  • 商誉减值后
  • 手把手教你如何套路男神
  • php中get_magic_quotes_gpc()函数说明
  • php实现和工作原理
  • 44岁就没有月经了正常吗
  • 销售费用可以开专票吗
  • 基训包括哪些
  • 出口抵减内销产品应纳税额怎么结转
  • python3 静态方法
  • 税控盘增值税发票怎么开
  • 出差补贴是额外的吗
  • 交易所转交易所手续费是多少
  • index.php备份文件
  • 在什么情况下要切除子宫
  • 应收货款计入什么科目
  • 销售费用包括哪些明细科目
  • 投资收益借贷方代表什么
  • 递延收益与预收收益区别
  • 利润是非限定净现值吗
  • 小规模纳税人的认定标准是什么
  • 交车险代收的车可以退吗
  • 发票上的印记能去掉吗
  • 制造费用工资计入什么科目
  • 印花税每月未计提怎么办
  • 公司年底奖金怎么计算
  • 自建厂房会计处理
  • 收客户逾期利息会计分录
  • 个别会计报表和合并会计报表
  • 残疾人就业保障金征收使用管理办法
  • 管理费用具体例子
  • 破产重组还需要还钱吗
  • 收到投资厂房有折旧的记账凭证怎么处理
  • 结转未交增值税会计处理
  • win10分辨率2560*1080
  • 怎么把ubuntu装在u盘上
  • windowsxp打不开网页怎么办
  • linux acl设置
  • win8怎么把任务栏变成透明
  • cocos2dx游戏案例
  • [置顶]电影名字《收件人不详》
  • our与my的区别
  • cmd网络管理命令的功能和用法
  • javascript 代码
  • 使用 jQuery.ajax 上传带文件的表单遇到的问题
  • python生成txt文档
  • js全局变量怎么定义
  • bootstrap的组件
  • 如何提高税收执法质效管理
  • 徐州房产过户手续流程
  • 公司收购农民的农产品能贴我公司标签吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设