位置: 编程技术 - 正文

mongoDB实现分页的方法(mongodb如何分片)

编辑:rootadmin

推荐整理分享mongoDB实现分页的方法(mongodb如何分片),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:mongotemplate 分页查询,mongo 分页查询,mongodb分页查询count太慢,mongodb如何分片,mongotemplate 分页查询,mongodb 分页,mongo 分页查询,mongodb分页查询语句,内容如对您有帮助,希望把文章链接给更多的朋友!

mongoDB的分页查询是通过limit(),skip(),sort()这三个函数组合进行分页查询的。

下面这个是我的测试数据

db.test.find().sort({"age":1});

第一种方法

查询第一页的数据:db.test.find().sort({"age":1}).limit(2);

查询第二页的数据:db.test.find().sort({"age":1}).skip(2).limit(2);

查询其他页数以此类推。。。

第二种方法

查询第一页的数据:db.test.find().sort({"age":1}).limit(2);

跟上面的第一种方法一样的。

查询第二页的数据:

这个是获取第一页最后一条记录的值,然后排除前面的记录,就能获取到新的记录了

总结来说,如果数据量不是很大的话,可以使用第一种方法,毕竟比较简单,如果数据量比较大的话,使用第二种方法比较好,因为这样就可以不用到skip()这个函数,skip跳过太多的记录,效率有点低

经过认真的考虑,第二种方法确实不适合跳页,而且效率也不是很高

mongoDB实现分页的方法(mongodb如何分片)

对于海量数据的话,我们要做些特殊的处理,

有以下2种方法

第一种方法

限制分页的页数,类似百度的百度的分页处理,只是显示前面的七百多条记录,这样的就不用考虑性能的问题了,毕竟一般人都只是翻到前面十页,就找到自己需要的了

后面的统计结果应该是估算出来的,根据查出来的这些记录所占的比例估算出总的记录数

第二种方法

我们可以这样做,假设是根据id排序的,我们可以id跟id所在的页数的序号存到redis/MemberCached中,

就像这样,假设每一页有条记录

id page

1 1

2 1

。。。

1

2

2

。。。。

2

这样我们查第一页的时候就能直接取出十条数据

假设有1亿条数据,一条记录id占4个字节,其他信息的占一个字节,一条记录就占5个字节

1 *5/(*)=MB

这种做法使用空间换时间,一般数据库查询的时间大多花在跟数据库的连接上,放在缓存中,可以大大加快查询的速度

标签: mongodb如何分片

本文链接地址:https://www.jiuchutong.com/biancheng/312642.html 转载请保留说明!

上一篇:mongoDB 多重数组查询(AngularJS绑定显示 nodejs)(mongodb 分组计数)

下一篇:MongoDB进阶之动态字段设计详解(mongodb进阶与实战下载)

  • 企业所得税广告费30%扣除
  • 小规模纳税人可以开数电专票吗
  • 实缴注册资本交税吗
  • 已抵扣发票冲红会计分录
  • 员工住院的发票可以做账吗
  • 母公司给子公司担保的规定
  • 企业发行债券的目的
  • 外资企业采购流程
  • 长期股权投资权益法初始成本的确定
  • 外经证预缴附加税
  • 工会经费自留比例
  • 固定资产计提折旧的方法
  • 申报退税金额是0是怎么回事
  • 发票认证了但是没记账
  • 预缴税款的会计分录贷其他应付款
  • 工会有纳税号吗
  • 新政出台
  • 加盟费怎么算的
  • 有限公司资本公积转增股本要交税吗
  • 小规模纳税人定额发票怎么报税
  • 汇算清缴所得税账务处理
  • 建账实收资本怎么处理
  • 个体户怎
  • 职工廉租房怎么办理
  • 销售部门品种多怎么说
  • 初级证书多长时间可以领取?
  • 同一张发票可以分两次报销吗
  • 其他货币资金包括哪些内容
  • dgservice.exe是什么
  • PHP:Memcached::getOption()的用法_Memcached类
  • php curl_multi_init
  • 投标保证金怎么退还流程
  • yolov5模型中git的作用
  • web攻防之业务安全实战指南
  • PHP使用pear实现mail发送功能 windows环境下配置pear
  • php中的函数
  • 详解Yii2.0 rules验证规则集合
  • laravel sqlserver
  • 浅谈如何培养孩子的注意力
  • php数组变字符串
  • 公司给职工买工伤险流程
  • 企业和银行未达账项
  • 装修阶段监理注意事项
  • CV攻城狮入门VIT(vision transformer)之旅——VIT原理详解篇
  • php封装数据库操作
  • 专票电话号码不对有影响吗
  • 公司为员工代扣代缴
  • 小规模纳税人附加税减免政策2023
  • 出差费算什么科目
  • 当月已付款, 没收到发票怎么做账
  • 主营业务冲减怎么做账
  • sqlserver连接数据库的方法
  • 原始凭证太多怎么做账
  • 购入交易性金融资产的相关税费计入
  • 企业所得税免征和不征税区别
  • 小规模纳税人去银行开立什么账户
  • 其他收益会计科目核算什么
  • 合同资产计提减值准备的依据
  • 企业会计制度对固定资产无入账价值怎么入账
  • 一般纳税人增值税税率
  • 信用减值损失科目代码6702
  • 出口退税勾选后电子税务局查不到发票
  • 蓝字发票认证怎么操作
  • 将备份的mdp文件导入数据库
  • sqlserver2000企业管理器自动关闭
  • 如何删除windowsedb
  • 苹果mac安装win10系统
  • Win7摄像头怎么打开
  • incorrect email format, please re-enter.
  • win10应用商店更新软件更新不了
  • linux 命令连接
  • 比较漂亮的一个字
  • easyui-accordion
  • python 遍历字符串修改
  • 一道关于医用口罩的数学题初二
  • Errors running builder 'Android Resource Manager' on Project java.lang.NullPointerException
  • Python工程师面试题 与Python基础语法相关
  • js如何实现复制
  • 水利建设基金如何计提
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设