diff --git a/mongodb/src/main/java/com/yahoo/ycsb/db/MongoDbClient.java b/mongodb/src/main/java/com/yahoo/ycsb/db/MongoDbClient.java index 5163f05c7a43a85f61fc30272db3f29e7ac05335..a2e50b329cd3b4a9c1ad72c0b2f9b9d8bd45311b 100644 --- a/mongodb/src/main/java/com/yahoo/ycsb/db/MongoDbClient.java +++ b/mongodb/src/main/java/com/yahoo/ycsb/db/MongoDbClient.java @@ -129,7 +129,7 @@ public class MongoDbClient extends DB { Document query = new Document("_id", key); DeleteResult result = collection.withWriteConcern(writeConcern) .deleteOne(query); - if (result.getDeletedCount() == 0) { + if (result.wasAcknowledged() && result.getDeletedCount() == 0) { System.err.println("Nothing deleted for key " + key); return 1; } @@ -253,11 +253,14 @@ public class MongoDbClient extends DB { if (batchSize <= 1) { UpdateResult result = collection.withWriteConcern(writeConcern) .replaceOne(criteria, toInsert, UPSERT); - if (result.getMatchedCount() > 0 - || result.getModifiedCount() > 0 + if (!result.wasAcknowledged() + || result.getMatchedCount() > 0 + || (result.isModifiedCountAvailable() && (result + .getModifiedCount() > 0)) || result.getUpsertedId() != null) { return 0; } + System.err.println("Nothing inserted for key " + key); return 1; } @@ -272,7 +275,8 @@ public class MongoDbClient extends DB { BulkWriteResult result = collection.withWriteConcern( writeConcern).bulkWrite(bulkInserts, new BulkWriteOptions().ordered(false)); - if (result.getInsertedCount() == bulkInserts.size()) { + if (!result.wasAcknowledged() + || result.getInsertedCount() == bulkInserts.size()) { bulkInserts.clear(); return 0; } @@ -445,7 +449,7 @@ public class MongoDbClient extends DB { UpdateResult result = collection.withWriteConcern(writeConcern) .updateOne(query, update); - if (result.getMatchedCount() == 0) { + if (result.wasAcknowledged() && result.getMatchedCount() == 0) { System.err.println("Nothing updated for key " + key); return 1; }