private void updateSingleRecord(List<WriteModel<Document>> bulkWriter,
Document key) {
// Key Query
rotateCollection();
Document query = new Document();
Document change;
if (key == null) {
int range = sequence * testOpts.workingset / 100;
int rest = sequence - range;
int recordno = rest + getNextVal(range);
query.append("_id",
new Document("w", workerID).append("i", recordno));
} else {
query.append("_id", key);
}
int updateFields = (testOpts.updateFields <= testOpts.numFields) ? testOpts.updateFields : testOpts.numFields;
if (updateFields == 1) {
long changedfield = (long) getNextVal((int) testOpts.NUMBER_SIZE);
Document fields = new Document("fld0", changedfield);
change = new Document("$set", fields);
} else {
TestRecord tr = createNewRecord();
tr.internalDoc.remove("_id");
change = new Document("$set", tr.internalDoc);
}
if (testOpts.findandmodify == false) {
bulkWriter.add(new UpdateManyModel<Document>(query, change));
} else {
this.coll.findOneAndUpdate(query, change); //These are immediate not batches
}
testResults.RecordOpsDone("updates", 1);
}
MongoWorker.java 文件源码
java
阅读 34
收藏 0
点赞 0
评论 0
项目:POCDriver
作者:
评论列表
文章目录