diff --git a/adapter-mongodb/src/main/java/io/nosqlbench/adapter/mongodb/core/MongoCommandOpDispenser.java b/adapter-mongodb/src/main/java/io/nosqlbench/adapter/mongodb/core/MongoCommandOpDispenser.java index f86b1caab..ed062aa1c 100644 --- a/adapter-mongodb/src/main/java/io/nosqlbench/adapter/mongodb/core/MongoCommandOpDispenser.java +++ b/adapter-mongodb/src/main/java/io/nosqlbench/adapter/mongodb/core/MongoCommandOpDispenser.java @@ -17,7 +17,7 @@ package io.nosqlbench.adapter.mongodb.core; import com.mongodb.ReadPreference; -import io.nosqlbench.adapter.mongodb.ops.MongoOp; +import io.nosqlbench.adapter.mongodb.ops.MongoDirectCommandOp; import io.nosqlbench.engine.api.activityimpl.BaseOpDispenser; import io.nosqlbench.engine.api.activityimpl.uniform.DriverAdapter; import io.nosqlbench.engine.api.activityimpl.uniform.flowtypes.Op; @@ -29,8 +29,8 @@ import java.util.Map; import java.util.function.LongFunction; public class MongoCommandOpDispenser extends BaseOpDispenser { - private final LongFunction opFunc; - private final LongFunction mongoOpF; + private final LongFunction opFunc; + private final LongFunction mongoOpF; public MongoCommandOpDispenser(DriverAdapter adapter, LongFunction ctxFunc, ParsedOp op) { super(adapter,op); @@ -38,7 +38,7 @@ public class MongoCommandOpDispenser extends BaseOpDispenser { this.mongoOpF = createOpFunc(ctxFunc,op); } - private LongFunction createOpFunc(LongFunction ctxFunc, ParsedOp op) { + private LongFunction createOpFunc(LongFunction ctxFunc, ParsedOp op) { LongFunction rpstring = op.getAsOptionalFunction("readPreference") .orElseGet(() -> op.getAsOptionalFunction("read-preference") @@ -59,7 +59,7 @@ public class MongoCommandOpDispenser extends BaseOpDispenser { LongFunction databaseNamerF = op.getAsRequiredFunction("database", String.class); - return l-> new MongoOp( + return l-> new MongoDirectCommandOp( ctxFunc.apply(l).getClient(), databaseNamerF.apply(l), bsonFunc.apply(l) diff --git a/adapter-mongodb/src/main/java/io/nosqlbench/adapter/mongodb/core/MongoDBOpTypes.java b/adapter-mongodb/src/main/java/io/nosqlbench/adapter/mongodb/core/MongoDBOpTypes.java index e4ba7b733..6b363fa9c 100644 --- a/adapter-mongodb/src/main/java/io/nosqlbench/adapter/mongodb/core/MongoDBOpTypes.java +++ b/adapter-mongodb/src/main/java/io/nosqlbench/adapter/mongodb/core/MongoDBOpTypes.java @@ -23,10 +23,10 @@ public enum MongoDBOpTypes { */ command, - /** - * @see update - */ - update, +// /** +// * @see update +// */ +// update, // /** // * @see insert diff --git a/adapter-mongodb/src/main/java/io/nosqlbench/adapter/mongodb/core/MongoOpMapper.java b/adapter-mongodb/src/main/java/io/nosqlbench/adapter/mongodb/core/MongoOpMapper.java index 59456d4a0..9613e7e67 100644 --- a/adapter-mongodb/src/main/java/io/nosqlbench/adapter/mongodb/core/MongoOpMapper.java +++ b/adapter-mongodb/src/main/java/io/nosqlbench/adapter/mongodb/core/MongoOpMapper.java @@ -16,8 +16,6 @@ package io.nosqlbench.adapter.mongodb.core; -import io.nosqlbench.adapter.mongodb.dispensers.MongoDbUpdateOpDispenser; -import io.nosqlbench.api.errors.OpConfigError; import io.nosqlbench.engine.api.activityimpl.OpDispenser; import io.nosqlbench.engine.api.activityimpl.OpMapper; import io.nosqlbench.engine.api.activityimpl.uniform.flowtypes.Op; @@ -53,13 +51,13 @@ public class MongoOpMapper implements OpMapper { if (target.isPresent()) { TypeAndTarget targetdata = target.get(); return switch (targetdata.enumId) { - case update -> new MongoDbUpdateOpDispenser(adapter, op, targetdata.targetFunction); + case command -> new MongoCommandOpDispenser(adapter, spaceF, op); +// case update -> new MongoDbUpdateOpDispenser(adapter, op, targetdata.targetFunction); // case insert -> new MongoDbInsertOpDispenser(adapter, op, opTypeAndTarget.targetFunction); // case delete -> new MongoDbDeleteOpDispenser(adapter, op, opTypeAndTarget.targetFunction); // case find -> new mongoDbFindOpDispenser(adapter, op, opTypeAndTarget.targetFunction); // case findAndModify -> new MongoDbFindAndModifyOpDispenser(adapter, op, opTypeAndTarget.targetFunction); // case getMore -> new MongoDbGetMoreOpDispenser(adapter, op, opTypeAndTarget.targetFunction); - case command -> throw new OpConfigError("invalid state, logic error in op mapper"); }; } // For everything else use the command API diff --git a/adapter-mongodb/src/main/java/io/nosqlbench/adapter/mongodb/ops/MongoOp.java b/adapter-mongodb/src/main/java/io/nosqlbench/adapter/mongodb/ops/MongoDirectCommandOp.java similarity index 92% rename from adapter-mongodb/src/main/java/io/nosqlbench/adapter/mongodb/ops/MongoOp.java rename to adapter-mongodb/src/main/java/io/nosqlbench/adapter/mongodb/ops/MongoDirectCommandOp.java index a05f0650f..17dffd223 100644 --- a/adapter-mongodb/src/main/java/io/nosqlbench/adapter/mongodb/ops/MongoOp.java +++ b/adapter-mongodb/src/main/java/io/nosqlbench/adapter/mongodb/ops/MongoDirectCommandOp.java @@ -21,7 +21,7 @@ import io.nosqlbench.engine.api.activityimpl.uniform.flowtypes.CycleOp; import org.bson.Document; import org.bson.conversions.Bson; -public class MongoOp implements CycleOp { +public class MongoDirectCommandOp implements CycleOp { private final MongoClient client; private final Bson rqBson; @@ -29,7 +29,7 @@ public class MongoOp implements CycleOp { private int resultSize; // https://docs.mongodb.com/manual/reference/method/db.runCommand/#command-response - public MongoOp(MongoClient client, String database, Bson rqBson) { + public MongoDirectCommandOp(MongoClient client, String database, Bson rqBson) { this.client = client; this.database = database; this.rqBson = rqBson; diff --git a/adapter-mongodb/src/main/resources/mongodb.md b/adapter-mongodb/src/main/resources/mongodb.md index bae8d5f3a..51df63ddd 100644 --- a/adapter-mongodb/src/main/resources/mongodb.md +++ b/adapter-mongodb/src/main/resources/mongodb.md @@ -2,6 +2,10 @@ This is a driver for MongoDB. It supports the `db.runCommand` API described in [here](https://docs.mongodb.com/manual/reference/command/). +Consult +[MongoDB commands](https://www.mongodb.com/docs/manual/reference/command/) +for details on command structure. + ### Example activity definitions Run a mongodb activity with definitions from activities/mongodb-basic.yaml