Java Mongdb在创建初始集合时跳过插入
似乎在最初创建集合时,有一段时间您无法插入文档。所以运行下面的代码,我只得到第一个插入Java Mongdb在创建初始集合时跳过插入,java,mongodb,Java,Mongodb,似乎在最初创建集合时,有一段时间您无法插入文档。所以运行下面的代码,我只得到第一个插入 Mongo mongo = new Mongo("localhost", 27017); DB db = mongo.getDB( "workqueue" ); DBCollection coll = db.getCollection("jobs"); coll.insert(new BasicDBObject("desc", "test1")); coll.insert(new BasicDBObject
Mongo mongo = new Mongo("localhost", 27017);
DB db = mongo.getDB( "workqueue" );
DBCollection coll = db.getCollection("jobs");
coll.insert(new BasicDBObject("desc", "test1"));
coll.insert(new BasicDBObject("desc", "test2"));
coll.insert(new BasicDBObject("desc", "test3"));
然而,如果我在每次插入之间插入一个睡眠线程,我会得到所有3个。这是一个bug还是我做错了什么?我认为这是由于writeconcern,如果你激活它,这将很快消失,你将把
mongo.writeconcern(writeconcern.FSYNC\u SAFE)
放在第二行,你得到了什么?你使用的是驱动程序版本2.10吗?。2.10以后的默认模式为WriteConcern.ACKNOWLEDGED,而以前的模式为WriteConcern.NORMAL。您使用的是较旧的Mongo类-如果您使用的是最新的驱动程序版本,请切换到MongoClient。正如您所看到的,在不安全模式下,插入正在发生,它们只需要一段时间。它们不会被拒绝,而是排队。