位置: 编程技术 - 正文

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

  • 进项税有余额但没有余额
  • 进项税额转出要补所得税吗
  • 移动平均加权法是什么意思
  • 公司给个人的补偿金需要交税吗
  • 分公司法人必须是总公司法人吗
  • 公司买车能一次性抵扣所得税吗
  • 无形资产升值怎么处理
  • 个体开票
  • 车船税代扣代缴手续费
  • 房地产开发企业预收款预缴增值税
  • 计提持有至到期投资减值准备
  • 企业购进废旧厂房的分录
  • 用库存物资抵货怎么做账
  • 税务管理相关知识
  • 海关进口需要什么手续
  • 取得进项票当月未认证
  • 小规模没有进项可以开发票吗
  • 意外险部分费用怎么算
  • 红字发票信息单需要寄给对方吗
  • 一般纳税人能用小企业会计准则吗
  • 代开的发票没有打印怎么作废
  • 总包劳务工资发什么科目
  • 商业承兑汇票风险
  • 收到财产保险赔款会计分录
  • 物流公司货车报废款怎么做账
  • 工资可以做企业成本吗?
  • 造价咨询暂定级能接业务吗
  • 公司之间银行往来款怎么做账
  • 技术服务的大类包括
  • win10系统如何注册dll文件
  • 怎么让别人无法访问我的qq空间
  • php获取远程文件数据
  • 支付代账公司费用 怎么写凭证
  • php框架的作用
  • 字体文件夹在哪
  • 股东已转让股权还可以追究出资吗
  • 伫立枝头的旅鸫鸟,加拿大 (© marcophotos/Getty Images)
  • 用gpu运行python
  • 有利润但不交企业所得税
  • 宝塔面板使用教程
  • node深入浅出pdf
  • 未拿到发票怎么做账
  • 金银首饰零售商属于消费税纳税人吗
  • 待处理财产损溢在资产负债表中填哪里
  • 销项负数发票需不需要增加库存
  • 如何测试php
  • 清卡后还可以勾选发票吗
  • mysql基本查询
  • 出票后定期付款的汇票,其提示付款的期限为
  • 单位卖二手车如何交税
  • 公司注册登记需要多少钱
  • 业务招待费的进项能抵扣吗
  • 产品销售收入的确认条件
  • 待抵扣进项税额
  • 如何查询一个企业的纳税情况
  • 前一年的未分配利润计算
  • 删除一组数据中的指定数据
  • mysql uuid分页优化
  • win10应用商店下载路径更改
  • 以管理员的身份运行是什么意思win10
  • 桌面上的软件是什么
  • OS X Yosemite系统怎么制作u盘安装盘
  • windows7修改注册表
  • uup windows
  • win7断电后无法正常启动
  • win7微软账户
  • linux系统的服务器
  • linux内核配置文件
  • windows8介绍
  • win7系统删除密码
  • win10推送升级win11
  • Android游戏开发入门
  • js 图片加载
  • nodejs mocha
  • js复制div
  • [置顶]公主大人接下来是拷问时间31
  • android:thumb
  • 企业科研经费管理制度
  • 办理跨区域事项报验
  • 二手房个税怎么算
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设