昨天在用mongo处理百万级数据时,将数据从本地文件存储到mongo数据库时,总是会缺少那么几条。纠结了好长时间查看代码也没什么问题。后来在公司前辈的指点下才知道
mongo是先存储在缓存中然后在存入数据库,但是在存入数据库的过程中有可能会对数据库连接出现问题。
在java中的解决办法是:
Mongo mg = new Mongo(localhost,27017);
DB db = db.getDB("test");
DBCollection coll = db.getCollection("test");
DBObject doc = new BasicDBObject();
doc.put("_id", 1);
for(int i= 1; i<=3; i++)
{
try {
coll.save(doc,WriteConcern.SAFE);
break;
} catch (Exception e) {
continue;
}
}
mongo 的insert和save都有相应的情况