mongdb对于大数据的分页

数据库 2019-07-31 1170

mongo官方推荐使用limit+skip来实现分页,这种方案简单,但是面对大数据可能就有些捉襟见肘了。
实例:
page1:db.getCollection('blog').find({}).skip(0).limit(10)
page2:
db.getCollection('blog').find({}).skip(10).limit(10)
上面查询语句表示跳过10条数据,显示10条数据,也就是11-20条数据
` data = COLLECT.find().skip(page).sort([("_id", -1), ]).limit(page_size)` 由于这种方式是通过查询整量数据后跳过,因此面对百万、千万数据显然效率太低。
方式2:
按照国外编程论坛的方案,使用find+limit,链接:https://stackoverflow.com/questions/20960815/range-query-for-mongodb-pagination
查询语句:db.tweets.find({_id: {$lt: <第一页的最后一个 ID>}}).limit(50).sort({_id: -1});
谷歌翻译渣翻:
另外这篇文章也还行https://www.jb51.net/article/85026.htm

https://stackoverflow.com/questions/7228169/slow-pagination-over-tons-of-records-in-mongodb#
https://scalegrid.io/blog/fast-paging-with-mongodb/
https://sammaye.wordpress.com/2012/05/25/mongodb-paging-using-ranged-queries-avoiding-skip/

标签:数据库

文章评论

评论列表

已有0条评论