Below code finds the first document in a collection :
package database;
import com.mongodb.BasicDBObject;
import com.mongodb.BulkWriteOperation;
import com.mongodb.BulkWriteResult;
import com.mongodb.Cursor;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.MongoClient;
import com.mongodb.ParallelScanOptions;
import com.mongodb.ServerAddress;
import java.net.UnknownHostException;
import java.util.List;
import java.util.Set;
import static java.util.concurrent.TimeUnit.SECONDS;
// based on http://mongodb.github.io/mongo-java-driver/2.13/getting-started/quick-tour/
public class Mongo {
public void getCon() {
// or
MongoClient mongoClient;
try {
mongoClient = new MongoClient("localhost", 27017);
DB db = mongoClient.getDB("mydb");
DBCollection coll = db.getCollection("testCollection");
BasicDBObject doc = new BasicDBObject("name", "MongoDB")
.append("type", "database")
.append("count", 1)
.append("info",
new BasicDBObject("x", 203).append("y", 102));
coll.insert(doc);
coll.findOne();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
There does not appear to be a findAll method. How to find all the documents in the collection testCollection
?
You have to use the DBCollection.find()
method, which
Select all documents in collection and get a cursor to the selected documents.
So, what you have to do, is:
DBCursor cursor = coll.find();
while (cursor.hasNext()) {
DBObject obj = cursor.next();
//do your thing
}
If you know that the query will return a small enough number of documents, you can use the DBCursor.toArray() method to get all the results into a List:
List<DBObject> all = coll.find().toArray();
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With