位置: 编程技术 - 正文

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

  • 一人在两家公司上班怎么缴纳个税
  • 增值税加计抵减是什么意思
  • 企业工程款发票税率是多少2021
  • 工资单上的retro
  • 分公司以前年度能弥补亏损吗
  • 合同上怎么注明开具6%的含税普通发票
  • 建房测绘收费
  • 公司分立是不是法人
  • 房地产企业停止经营后未抵减完的预缴增值税可以退吗
  • 股票价值的计算公式财务管理
  • 金融机构利息收入缴纳增值税
  • 存货盘亏损失可以扣除吗
  • 会计凭证填制错误怎么办
  • 个体工商户需要缴纳哪些税
  • 支付土地流转费
  • 代收代付如何进行账务处理?
  • 跨年度收入计算的增值税如何入账?
  • 2016年的发票2020年可以认证吗
  • 购物车内广告收入应该怎么缴税?
  • 总公司与分公司的账务处理销售
  • 企业的公益性捐赠支出
  • 权利许可证照印花税每个月都要交吗
  • 城市维护建设税属于什么科目
  • 公司账户有钱怎么取出来
  • 计算机系统结构第三版课后答案
  • 合伙企业是怎样分红的
  • 0xc000007b应用程序无法正常启动win11
  • php页面之间传值
  • php怎么设置中文
  • 在php中,字符串有哪些表示形式
  • msg3.0.db是什么文件
  • 高新技术产业的税收优惠
  • 退货时可以按部分退货吗
  • 代码怎么用?
  • 金融服务机构
  • php自动部署
  • 补提企业所得税财务报表应该如何调整
  • 库存商品的进销存怎么做账
  • 预收账款是否需入账
  • 投标保证金退还时间是在什么文件的规定的
  • 什么叫资本退出
  • db2数据库备份文件为bkd格式
  • 增值税发票的规范
  • 个税申报错了并撤销
  • 出口报关单运费可以填0吗
  • 内账中采购另付的税点算成本还是费用
  • mssqlserver怎么用
  • 装修费用账务怎么处理
  • 当月未开票收入八百万
  • 承租方承担的税费有哪些
  • 发票报销有限制吗
  • 领用包装物用于包装产品的会计分录
  • 年末计提企业所得税的依据
  • 个税公司少申报一个月会对个人有什么影响
  • 附加税期末余额在借方
  • mysql绿色版配置
  • mysql中建表
  • doc怎么使用
  • win7旗舰版系统怎么样
  • win8怎么运行
  • ubuntu运行慢的原因
  • macos教程
  • 怎么制作xp系统
  • windows7禁止开机启动
  • linux常用命令chmod的使用
  • android:ViewPager与FragmentPagerAdapter
  • 微信开发微信开发
  • 简述ajax
  • jQuery通过ajax快速批量提交表单数据
  • jquery 重写 ajax提交并判断权限后 使用load方法报错解决方法
  • unity ctrl
  • javascript命名空间
  • javaScript parseInt字符转化为数字函数使用小结
  • 佛山国家税务局招聘
  • 餐饮专票可以抵扣吗
  • 电子税务局新户报道怎么弄
  • 深圳市税务审批中心电话
  • 云南省国家税务局电子税务局
  • 鞋类进口关税
  • 增值税电子专用发票怎么作废
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设