From 8ae0bd30aaa8b31ac91e6a1753410427232e1089 Mon Sep 17 00:00:00 2001 From: Jeff Yemin <jeff.yemin@10gen.com> Date: Thu, 9 Jul 2015 20:33:33 -0400 Subject: [PATCH] A bit more cleanup of scan and read in MongoDbClient --- .../java/com/yahoo/ycsb/db/MongoDbClient.java | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) 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 19376711..b1b00e6f 100644 --- a/mongodb/src/main/java/com/yahoo/ycsb/db/MongoDbClient.java +++ b/mongodb/src/main/java/com/yahoo/ycsb/db/MongoDbClient.java @@ -284,7 +284,6 @@ public class MongoDbClient extends DB { FindIterable<Document> findIterable = collection.find(query); - Document queryResult = null; if (fields != null) { Document projection = new Document(); for (String field : fields) { @@ -293,7 +292,7 @@ public class MongoDbClient extends DB { findIterable.projection(projection); } - queryResult = findIterable.first(); + Document queryResult = findIterable.first(); if (queryResult != null) { fillMap(result, queryResult); @@ -335,16 +334,21 @@ public class MongoDbClient extends DB { Document scanRange = new Document("$gte", startkey); Document query = new Document("_id", scanRange); Document sort = new Document("_id", INCLUDE); - Document projection = null; + + FindIterable<Document> findIterable = collection.find(query) + .sort(sort) + .limit(recordcount); + if (fields != null) { - projection = new Document(); + Document projection = new Document(); for (String fieldName : fields) { projection.put(fieldName, INCLUDE); } + findIterable.projection(projection); } - cursor = collection.find(query) - .projection(projection).sort(sort).limit(recordcount).iterator(); + cursor = findIterable.iterator(); + if (!cursor.hasNext()) { System.err.println("Nothing found in scan for key " + startkey); return 1; -- GitLab