how to call count operation after find with mongodb java driver how to call count operation after find with mongodb java driver mongodb mongodb

how to call count operation after find with mongodb java driver


As you said the MongoCollection has the count() method that will return the number of documents in the collection, but it has also a count(Bson filter) that will return the number of documents in the collection according to the given options.

So you can just use:

long count = photosCollections.count(Document.parse("{_id : {$lt : 100}}"))

or maybe clearer:

Document query = new Document("_id", new Document("$lt", 100));long count = photosCollections.count(query);

ref: http://api.mongodb.com/java/3.3/com/mongodb/client/MongoCollection.html#count-org.bson.conversions.Bson-


In MongoDB 3.4 you can only use the Iterator of FindIterable to get the count of the documents returned by a filter. e.g.

`FindIterable findIterable =  mongoCollection.find(Filters.eq("EVENT_TYPE", "Sport"));    Iterator iterator = findIterable.iterator();    int count = 0;    while (iterator.hasNext()) {        iterator.next();        count++;    }    System.out.println(">>>>> count = " + count);

`


I had a similar problem. I am using MongoCollection instead of DBCollection, as it is what it is used in MongoDG 3.2 guide. MongoCollection hasn't got count() method, so I think the only option is to use the iterator to count them.

In my case I only needed to know if any document has been returned, I am using this:

if(result.first() != null)