MongoDB数据分页与排序

时间:2022-07-25
本文章向大家介绍MongoDB数据分页与排序,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

Mongodb数据分页与排序

db.books.insert([{"title" : "PHP 教程" },
{"title" : "Java 教程"},
{"title" : "MongoDB 教程"},
{"title" : "C 教程"},
{"title" : "C++ 教程"},
{"title" : "oracle 教程"}])

分页排序相关api

  • count:统计总数,效率较低 db.books.find().count();
  • limit:限制单页数据量 db.books.find().limit(2);
  • skip:跳过n条数据,效率较低 db.books.find().limit(2).skip(2); db.books.find().skip(2).limit(2);
  • sort:排序(1:升序,-1:降序) db.books.find().limit(2).skip(2).sort({title:1}); 函数顺序:先排序sort,再skip,最后limit

mongodb分页排序方案

方案一:limit,skip,sort。

首先:count()总数 第一页:db.books.find().limit(3); 第二页:db.books.find().limit(3).skip(3);

方案二:

首先:count()总数 第一页:db.books.find().limit(3); 第二页:db.books.find({_id: {$gt: <第一页的最后一个 ID>}}).limit(3).sort({_id: 1}); id是有顺序的,而且不重复。(id+增量)

方案三:

固定限制只显示10页,每页50条,这样避免了count(),skip效率不会太低。

  • 分析: 方案一性能最差,count和skip一个也没避开。可以跨页翻页,完整性较好。 方案二性能适中,避开了skip。但数据翻页不能跨页翻页。按顺序翻页 方案三性能最好,但是数据完整性较差。 通常情况下,用户不会要求在web端完整的显示大数据,可以做出合理的解释。所以通常选择第三种。

喜欢 (1)or分享 (0)