谁能解释为什么这个查询
db.factfind.find().sort({ _id:1 }).skip(5000).limit(10)
比我数据库中的查询快60(1秒比60秒)倍。
db.factfind.aggregate( [
{"$sort": {"_id": 1}}
,
{"$skip": 5000}
,
{"$limit": 10} ] )
如果有帮助的话,Wired Tiger的9GB磁盘上有32GB很大的磁盘空间,并且有很多深度嵌套的文档数组。
更新
我想我可能已经找到了我自己问题的答案。从历史上看,在mongo中分页速度很慢(我正在使用3.6),您进入的集合越远。如果我将汇总更改为此。
db.factfind.aggregate( [
{"$sort": {"_id": 1}}
,
{"$skip": 50}
,
{"$limit": 10} ] )
随着我$skip
的增加,速度会越来越快,并且逐渐变慢,因此也许在{3.6中,$skip
的效率低下已被固定,而db.find()
却没有被固定>