加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 服务器 > 系统 > 正文

MongoDB中做数据分页的语句是啥 怎样做排序

发布时间:2023-08-24 13:43:40 所属栏目:系统 来源:
导读:这篇文章主要讲解了“MongoDB中做数据分页的语句是什么,怎样做排序”,文中的讲解内容简单、清晰、详细,对大家学习或是工作可能会有一定的帮助,希望大家阅读完这篇文章能有所收获。下面就请大家跟着小编

这篇文章主要讲解了“MongoDB中做数据分页的语句是什么,怎样做排序”,文中的讲解内容简单、清晰、详细,对大家学习或是工作可能会有一定的帮助,希望大家阅读完这篇文章能有所收获。下面就请大家跟着小编的思路一起来学习一下吧。

使用Skip和limit可以如下做数据分页:

Code:

  page1 = db.things.find().limit(20)

  page2 = db.things.find().skip(20).limit(20)

  page3 = db.things.find().skip(40).limit(20)

备注:可用于分页,limit是pageSize,skip是第n-1页*pageSize (n-1表示几 第1,2...页) skip表示跳过 多少条数据, 聚合管道的优化

  1.$sort + $skip + $limit顺序优化

如果在执行管道聚合时,如果$sort、$skip、$limit依次出现的话,例如:

    { $sort: { age : -1 } },

    { $skip: 10 },

    { $limit: 5 }

那么实际执行的顺序为:

{ $sort: { age : -1 } },

    { $limit: 15 },

    { $skip: 10 }

$limit会提前到$skip前面去执行。

此时$limit = 优化前$skip+优化前$limit

这样做的好处有两个:

1.在经过$limit管道后,管道内的文档数量个数会“提前”减小,这样会节省内存,提高内存利用效率。

2.$limit提前后,$sort紧邻$limit这样的话,当进行$sort的时候当得到前“$limit”个文档的时候就会停止。

当数据量很小时,这样做分页完全没有问题。但是当数据量很大时,skip操作会变的很慢,应该避免使用。

(不止是mongoDb会这样,大部分数据库都是。)可以通过改变查询文档的规则来达到分页效果,避免使用skip来跳过大量的数据。

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章