我正在尝试在执行find()查询时设置QUERYOPTION_NOTIMEOUT标志。 该标志将覆盖MongoCursor上的默认10分钟超时。
根据Documentation find()应该返回一个DBCursor:
DBCursor cursor = collection.find(query);
然后我可以做
cursor.addOption(Bytes.QUERYOPTION_NOTIMEOUT);
但是find()实际上返回了没有addOption()方法的FindIterableImpl /。
以下是上下文的整个方法:
public static MongoCursor getSomethingFromDB(String something) {
MongoCollection collection = getCollectionForClass(BlogPost.class);
return collection.find(and(exists("a", false), eq("other", something))).iterator();
}
答案 0 :(得分:7)
在mongo-java驱动程序的第3版上执行此操作的方法是:
collection.find(and(exists("a", false), eq("other", lang))).noCursorTimeout(true).iterator();
显然
cursor.addOption(Bytes.QUERYOPTION_NOTIMEOUT);
来自V2 API,V3文档已过时