mongo数据无法查询尾页数据!

玩乐 2018-05-03 07:04:17
用的是C#
今天用mongo查数据的时候,查询不到尾页 数据,数据大概有100W+条,当跳转到尾页或者很后面的页数时,数据没有返回.

var _repository=new MongoClient(ConnectionUrl).GetServer().GetDatabase("Test").GetCollection<Entity>(CollectionName).
MongoCursor<Entity> cursor = _repository.Find(Query).SetSortOrder(sort).SetLimit(PAGE).SetSkip(skip);

大概就是这种样子,查询前面页数的时候反应慢了点,但是可以查询出来,但是查询尾页或者很后面的页数时,没有查询数据返回,看了下mongo的日志

2018-05-03T18:43:50.898+0800 I COMMAND [conn5] query fdms.egslog query: { $query: { OwnerId: "5aea7ddcf7f1253368dbccbf" }, $orderby: { CreateTime: -1 } } planSummary: COLLSCAN, COLLSCAN cursorid:35886059723 ntoreturn:100 ntoskip:600 keysExamined:0 docsExamined:1084135 hasSortStage:1 keyUpdates:0 writeConflicts:0 numYields:8475 nreturned:100 reslen:19220 locks:{ Global: { acquireCount: { r: 16952 } }, Database: { acquireCount: { r: 8476 } }, Collection: { acquireCount: { r: 8476 } } } 1601ms

2018-05-03T18:44:20.057+0800 E QUERY [conn5] Plan executor error during find: FAILURE, stats: { stage: "SKIP", nReturned: 0, executionTimeMillisEstimate: 460, works: 160802, advanced: 0, needTime: 160801, needYield: 0, saveState: 1256, restoreState: 1256, isEOF: 0, invalidates: 0, skipAmount: 1084100, inputStage: { stage: "ENSURE_SORTED", nReturned: 0, executionTimeMillisEstimate: 460, works: 160802, advanced: 0, needTime: 160801, needYield: 0, saveState: 1256, restoreState: 1256, isEOF: 0, invalidates: 0, nDropped: 0, inputStage: { stage: "OR", nReturned: 0, executionTimeMillisEstimate: 460, works: 160802, advanced: 0, needTime: 160801, needYield: 0, saveState: 1256, restoreState: 1256, isEOF: 0, invalidates: 0, dupsTested: 0, dupsDropped: 0, locsForgotten: 0, inputStages: [ { stage: "SORT", nReturned: 0, executionTimeMillisEstimate: 460, works: 160802, advanced: 0, needTime: 160801, needYield: 0, saveState: 1256, restoreState: 1256, isEOF: 0, invalidates: 0, sortPattern: { CreateTime: -1 }, memUsage: 33554545, memLimit: 33554432, limitAmount: 1084200, inputStage: { stage: "SORT_KEY_GENERATOR", nReturned: 0, executionTimeMillisEstimate: 200, works: 160801, advanced: 0, needTime: 2, needYield: 0, saveState: 1256, restoreState: 1256, isEOF: 0, invalidates: 0, inputStage: { stage: "COLLSCAN", filter: { OwnerId: { $eq: "5aea7ddcf7f1253368dbccbf" } }, nReturned: 160799, executionTimeMillisEstimate: 70, works: 160800, advanced: 160799, needTime: 1, needYield: 0, saveState: 1256, restoreState: 1256, isEOF: 0, invalidates: 0, direction: "forward", docsExamined: 160799 } } }, { stage: "SORT", nReturned: 0, executionTimeMillisEstimate: 0, works: 0, advanced: 0, needTime: 0, needYield: 0, saveState: 1256, restoreState: 1256, isEOF: 0, invalidates: 0, sortPattern: { CreateTime: -1 }, memUsage: 0, memLimit: 33554432, inputStage: { stage: "SORT_KEY_GENERATOR", nReturned: 0, executionTimeMillisEstimate: 0, works: 0, advanced: 0, needTime: 0, needYield: 0, saveState: 1256, restoreState: 1256, isEOF: 0, invalidates: 0, inputStage: { stage: "COLLSCAN", filter: { OwnerId: { $eq: "5aea7ddcf7f1253368dbccbf" } }, nReturned: 0, executionTimeMillisEstimate: 0, works: 0, advanced: 0, needTime: 0, needYield: 0, saveState: 1256, restoreState: 1256, isEOF: 0, invalidates: 0, direction: "forward", docsExamined: 0 } } } ] } } }

2018-05-03T18:44:20.114+0800 I QUERY [conn5] assertion 17144 Executor error: OperationFailed: Sort operation used more than the maximum 33554432 bytes of RAM. Add an index, or specify a smaller limit. ns:fdms.egslog query:{ $query: { OwnerId: "5aea7ddcf7f1253368dbccbf" }, $orderby: { CreateTime: -1 } }

2018-05-03T18:44:20.114+0800 I QUERY [conn5] ntoskip:1084100 ntoreturn:100

上述可以忽略, 主要是 ——————Plan executor error during find:——————
然后就没有数据返回了,求解为何会查不到数据!!!!!!!
...全文
669 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

1,747

社区成员

发帖
与我相关
我的任务
社区描述
MongoDB相关内容讨论区
社区管理员
  • MongoDB社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧