昨天在用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都有相應的情況