Mongodb数据分页与排序
代码语言:javascript复制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)