MongoDb 2.4.7
mongo-java-driver-2.11.2.jar
ウィンドウズ7
そのため、挿入のバッチを挿入してテストmongodbをロードして、処理できるスループットを判断しようとしています。一度に1つずつ挿入すると機能します:
...
MongoClient conn = new MongoClient("localhost", 27017);
DB db = conn.getDB( "myDb" );
BasicDBObject jobRecord = new BasicDBObject(...);
DBCollection coll = db.getCollection("myTable");
BasicDBObject finalJobRecord;
for(int i=0;i<100;i++)
{
finalJobRecord = jobRecord;
finalJobRecord = finalJobRecord.append("recnum",String.valueOf(i));
coll.insert(finalJobRecord);
finalJobRecord.removeField("_id");// wont work without because of duplicate key errors
}
conn.close();
これをバッチに変更すると、機能しません(重複キー例外が発生します):
...
MongoClient conn = new MongoClient("localhost", 27017);
DB db = conn.getDB( "myDb" );
BasicDBObject jobRecord = new BasicDBObject(...);
DBCollection coll = db.getCollection("myTable");
BasicDBObject finalJobRecord;
List<DBObject> basicDBObjects = new LinkedList<>();
for(int i=0;i<100;i++)
{
finalJobRecord = jobRecord;
finalJobRecord = finalJobRecord.append("recnum",String.valueOf(i));
basicDBObjects.add(finalJobRecord);
}
coll.insert(basicDBObjects);
conn.close();