MongoDB java驱动程序行为异常
我使用MongoDB作为数据库,并使用MongoDB的JAVA驱动程序连接到数据库。我面临的问题很奇怪。从我的角度来评论JAVA驱动程序中的任何错误都为时过早
我在使用驱动程序时面临的问题是,在DB中进行了一些操作之后,相同的代码没有执行它打算执行的操作。不知道为什么
请参见下面的示例代码
MongoClient mongoclient=null;
DB db;
DBUtils dbUtils=new DBUtils();
mongoclient=dbUtils.connectToDB("pingpong");
db = mongoclient.getDB("pingpong");
//This is commented out for the time being as data is cleared in postmessage
//dbUtils.clearData(messageid);
BasicDBObject query = new BasicDBObject("messageid", new BasicDBObject("$regex",messageid));
DBCollection coll=db.getCollection("SearchResult");
DBCursor cursor=coll.find(query);
int j=1;
if (cursor.count()>0){
}else{
while(j<=5){
System.out.println("THIS"+messageid);
BasicDBObject query2 = new BasicDBObject("messageid", new BasicDBObject("$regex",messageid));
DBCollection coll2=db.getCollection("SearchResult");
DBCursor cursor2=coll2.find(query2);
if (cursor2.count()>0){
System.out.println(cursor2.count());
break;
}
try {
Thread.sleep(j*1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
j=j+1;
if((j==5) ||(j>5)){
break;
}
}
}
我面临的首要问题是
BasicDBObject query2=新的BasicDBObject(“messageid”,新的BasicDBObject($regex,messageid))声明
尽管SearchResult表中没有与messagedid匹配的记录,但我在记录中获得了所有集合。说明messageid是否为XXXXYYYY。集合中没有messageid为XXXXYYYY的记录
这段代码执行了好几次。但从第三次开始,它就获得了整个收藏
我不确定我哪里出了问题,或者司机本身有问题
我使用的是2人副本集+1仲裁设置
我在谷歌上搜索信息,但找不到任何信息。我相信我的代码是好的。从司机的角度来看,是否有任何人面临的陈旧问题
谁能帮帮我吗
谢谢
共 (0) 个答案