com.mongodb.MongoException$CursorNotFound: cursor not found on server异常处理

java链接MongoDB处理大量数据时经常碰到cursor not found 的异常,其实是超时所致

Exception in thread "main" com.mongodb.MongoException$CursorNotFound: cursor not found on server

at com.mongodb.DBApiLayer$Result.init(DBApiLayer.java:379)

at com.mongodb.DBApiLayer$Result._advance(DBApiLayer.java:426)

at com.mongodb.DBApiLayer$Result.hasNext(DBApiLayer.java:408)

at com.mongodb.DBCursor._hasNext(DBCursor.java:495)

at com.mongodb.DBCursor.hasNext(DBCursor.java:515)

在国内论坛上转了一圈,解决方法说的不知所云,其实解决方法很简单:

DBCursor cursor = collection.find(condtion);

      cursor.addOption(com.mongodb.Bytes.QUERYOPTION_NOTIMEOUT);

只要在查询的DBCursor添加com.mongodb.Bytes.QUERYOPTION_NOTIMEOUT就解决!

时间: 2024-10-17 04:50:48

com.mongodb.MongoException$CursorNotFound: cursor not found on server异常处理的相关文章

解决com.mongodb.MongoException$CursorNotFound: cursor 0 not found on server

背景 经常需要执行脚本调用Java程序读取mongodb中数据,本来是转为后台进程.偶尔看看日志的简单任务.今天发现程序抛出异常“com.mongodb.MongoException$CursorNotFound: cursor 0 not found on server”.一开始没在意,重新执行也可以继续跑,但是过一段时间又抛出同样错误,看来要战斗了. 分析 在mogondb.org官网,我找到了同样的问题,这是一个2013年就发现并解决的问题,官方回应这一BUG,并且已经在版本(2.11.0

mongoDB: cursor not found on server

查询mongoDB集合数据更新,数据有400w多.我一次用cursor(游标)取1w,处理更新.程序在某段时间运行中遍历游标时发生异常! DBCursor cursor = tabColl.find(queryObj).skip(startRow).limit(pageSize); 完整异常信息:com.mongodb.MongoException$CursorNotFound: cursor not found on server         at com.mongodb.DBApiLay

在 docker 環境下建立以 MongoDB & NodeJS 為架構的 web server (for Win7)

參考文獻 教材程式碼 教材解答 說明: http://proserge.kh.ua/coding/index.php/post/33/MongoDB+for+NodeJs+devs+week4%3A+Perfomance node.js + mongo db 是大家習慣使用建立 [Web + database] project 的工具;以上教材是在 docker 的環境下的建立簡易部落格.教材程式碼部分露空,主要讓讀者自己完成;答案也有網址,為了方便展示執行結果,我將 2 者合併為一個 proj

nodejs读取mongodb返回数据到前台页面[object object]异常处理

第二步中的<%- %>尤为重要,不然会出现不可预见的错误,如非法字符'_'或者非法字符'o'等异常 版权声明:本文为博主原创文章,未经博主允许不得转载.

mongodb study

mongodb study 读到101个记录不动了,卡住的语句好像是网络不通: File "/Library/Python/2.7/site-packages/pymongo/cursor.py", line 1058, in next if len(self.__data) or self._refresh(): File "/Library/Python/2.7/site-packages/pymongo/cursor.py", line 1019, in _r

【pymongo.errors】Cursor not found

pymongo.errors.CursorNotFound: Cursor not found 故事背景:先从数据库中取得所有数据 db['test'].find(),然后对结果进行for循环,但是当do_something函数耗时过长,在cursor上长时间没有进行操作,引发cursor在mongodb服务端超时. 分析原因:你在用 db.collection.find() 的时候,它返回的不是所有的数据,而实际上是一个“cursor”.它的默认行为是:第一次向数据库查询 101 个文档,或

Java MongoDB Driver 3.x - Quickly Start

Maven Dependency: <dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-java-driver</artifactId> <version>3.2.2</version> </dependency> Make a Connection The following example shows five ways to conn

java实现mongodb的dbutils

mongodb用起来了,但是操作返回数据调用find方法 返回 需要处理,很是不爽,借鉴了下commons-dbutils对java数据库的操作,自己也对mongodb的返回数据实现封装.里面用到java 内省和反射. 接下来贴源码 和简单的注释 Person.java package com.zk.bean; /** * 用户实体 * @author zk * @time 2015-4-24 下午1:49:45 * @version 1.0 * @todo */ public class Pe

MongoDB 使用Index

Index 能够提高查询的性能,如果没有Index,MongoDB必须扫描整个collection,从collection的第一个doc开始,直到最后一个doc,即使第一个doc之后的所有doc都不满足查询条件.如果在Collection上有合适的Index,例如,unique index,那么MongoDB在按照index key查找到一个doc之后,就不会继续对其他doc查询,极大地提高查询性能. MongoDB的 Index 结构跟关系型DB的NonClustered Index相似,都是