MongoWorker.java 文件源码

java
阅读 34 收藏 0 点赞 0 评论 0

项目:POCDriver 作者:
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);
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号