MongoDB, closing cursor in Java 3.0 APIs

From: JackB <jackbergus@xxxxxxxxx>
To: mongodb-user <mongodb-user@xxxxxxxxxxxxxxxx>
Date: Sun, 24 Apr 2016 03:20:07 -0700 (PDT)
Why ads?
 

I'm getting a problem with my MongoDB Java Driver, 3.0 Version. After 
performing several operations over several collections (updateOne, find), 
I'm getting a Command failed with error 8: '24: Too many open files' error. 
A typical operation that I perform oftenly in my code is the following one:


private Document findFirst(int i) {
    FindIterable<Document> cursor = collection.find(new Document("_id", i)).limit(1);
    Document exists = null;
    for (Document doc : cursor) {
        exists = doc;
        break;
    }
    return exists;
}


Document exists = findFirst(integer);
return exists != null ? new MongoDBDocument(collection,exists) : null;

 


and, when I lookup for IDs, the "session" is not closed:


Set<Integer> s = new HashSet<>();
for (Document k : collection.find().projection(new Document("_id",1))) { //Fully 
scan the collection
s.add(Integer.valueOf((String)k.get("_id")));
}
return s;


So, I saw that in the elder APIs the result of the find operation returned 
a DBCursor that had to be closed. It seems to me that with the current 
implementation, no cursor is closed. The only way I see to get this to work 
is to close each time the MongoClient, but most probably I'm not doing 
somthing in the right way. Probably, when I retrieve collections with 
db.getCollection(name), I have to close it somehow after performing some 
operations over it: I tried to read the documentation but nothing helped 
me. 


Where am I wrong? Thanks in advance.

-- 
You received this message because you are subscribed to the Google Groups "mongodb-user"
group.

For other MongoDB technical support options, see: https://docs.mongodb.org/manual/support/
--- 
You received this message because you are subscribed to the Google Groups "mongodb-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mongodb-user+unsubscribe@xxxxxxxxxxxxxxxx.
To post to this group, send email to mongodb-user@xxxxxxxxxxxxxxxx.
Visit this group at https://groups.google.com/group/mongodb-user.
To view this discussion on the web visit https://groups.google.com/d/msgid/mongodb-user/321d9282-4808-48f5-a01b-c8337c90f84c%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Why ads?