MongoDB Java Driver – Quick reference
The MongoDB Java Driver is a library that provides a Java-based interface for interacting with MongoDB, a popular NoSQL document database. It allows Java developers to connect to MongoDB databases, perform CRUD (Create, Read, Update, Delete) operations, and execute advanced queries using the Java programming language.
The MongoDB Java Driver serves as a bridge between your Java application and the MongoDB server, enabling seamless integration and communication between the two. It abstracts away the complexities of working directly with MongoDB’s wire protocol, providing a higher-level API that simplifies the development process.
If you are new to MongoDB we recommend checking this article: Building Java Enterprise applications using MongoDB
Driver Configuration
Firstly, let’s see how to configure your application to use MongoDB Driver. Add the following dependency to your Maven project:
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver-sync</artifactId>
<version>4.9.1</version>
</dependency>
Connecting to MongoDB
How to connect to a local Database and get an handle to DB named “mydb”
MongoClient mongoClient = new MongoClient();
MongoDatabase database = mongoClient.getDatabase("mydb");
How to get an handle to the Collection named “test”
MongoCollection<Document> collection = database.getCollection("test");
Document management
How to create a Document and insert it:
Document doc = new Document("name", "MongoDB")
.append("type", "database")
.append("count", 1)
.append("info", new Document("x", 203).append("y", 102));
collection.insertOne(doc);
How to convert a Document into JSON:
String json = myDoc.toJson();
How to find the first Document in a Collection
Document myDoc = collection.find().first();
How to insert multiple Documents in one shot:
List<Document> documents = new ArrayList<Document>();
for (int i = 0; i < 100; i++) {
documents.add(new Document("i", i));
}
collection.insertMany(documents);
How to count the number of Documents in a Collection:
System.out.println("total # of documents " + collection.count());
How to iterate over a Collection
MongoCursor<Document> cursor = collection.find().iterator();
try {
while (cursor.hasNext()) {
System.out.println(cursor.next().toJson());
}
} finally {
cursor.close();
}
How to find one Document whose key matches with a value:
Document myDoc = collection.find(eq("i", 71)).first();
How to find all Documents which are matching a constraint:
MongoCursor<Document> cursor = collection.find(gt("i", 50)).iterator();
How to find all Documents which are matching multiple constraints:
MongoCursor<Document> cursor = collection.find(and(gt("i", 50), lte("i", 100))).iterator();
How to apply a filter which executes a Callback method defined in a Block class:
Block<Document> printBlock = new Block<Document>() {
@Override
public void apply(final Document document) {
System.out.println(document.toJson());
}
};
collection.find(gt("i", 50)).forEach(printBlock);
How to use a Projection:
Document myDoc = collection.find().projection(excludeId()).first();
How to update a Document:
collection.updateOne(eq("i", 10), new Document("$set", new Document("i", 110)));
How to update multiple Documents:
UpdateResult updateResult = collection.updateMany(lt("i", 100),
new Document("$inc", new Document("i", 100)));
System.out.println(updateResult.getModifiedCount());
How to delete a Document
collection.deleteOne(eq("i", 110));
How to delete multiple Documents:
DeleteResult deleteResult = collection.deleteMany(gte("i", 100));
System.out.println(deleteResult.getDeletedCount());
How to perform a Bulk write:
List<WriteModel<Document>> writes = new ArrayList<WriteModel<Document>>();
writes.add(new InsertOneModel<Document>(new Document("_id", 4)));
writes.add(new InsertOneModel<Document>(new Document("_id", 5)));
writes.add(new InsertOneModel<Document>(new Document("_id", 6)));
writes.add(new UpdateOneModel<Document>(new Document("_id", 1), new Document("$set", new Document("x", 2))));
writes.add(new DeleteOneModel<Document>(new Document("_id", 2)));
writes.add(new ReplaceOneModel<Document>(new Document("_id", 3), new Document("_id", 3).append("x", 4)));
collection.bulkWrite(writes);
Recommended Articles
Learn How to Use MongoDB with Enterprise Java Applications
Master connecting MongoDB NoSQL database in an Enterprise application using Jakarta EE and the MongoDB Java Driver. Learn about different versions of the driver and how to start MongoDB.
3 Ways to Connect to MongoDB from WildFly: A Comprehensive Guide
Learn how to connect to MongoDB from WildFly using the MongoDB Java Driver, modules, and CDI. Get started with a sample CRUD REST application.
Mastering Java Enums and EnumMaps for Efficient Data Management
Learn how to use Java Enums and EnumMaps effectively for efficient data management. Explore their differences from standard Map and Set objects.
Mastering Java Streams for Efficient JSON Processing
Learn to use Java Streams for efficient and readable JSON processing with the Jackson library. Includes best practices and performance tips.