or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

change-streams.mdcollection-crud.mdconnection-management.mddatabase-operations.mdencryption.mdgridfs.mdindex-management.mdindex.mdquery-aggregation.mdsessions-transactions.md
tile.json

tessl/maven-org-mongodb--mongodb-driver-sync

The MongoDB Synchronous Driver for Java providing blocking I/O patterns for database operations

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
mavenpkg:maven/org.mongodb/mongodb-driver-sync@5.5.x

To install, run

npx @tessl/cli install tessl/maven-org-mongodb--mongodb-driver-sync@5.5.0

index.mddocs/

MongoDB Java Driver (Sync)

The MongoDB Synchronous Driver for Java provides blocking I/O patterns for MongoDB database operations. It offers a comprehensive API for database and collection operations including CRUD operations, aggregation pipelines, indexing, transactions, GridFS file storage, and client-side field level encryption.

Package Information

  • Package Name: mongodb-driver-sync
  • Package Type: maven
  • Language: Java
  • Installation: implementation 'org.mongodb:mongodb-driver-sync:5.5.1'

Core Imports

import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.MongoCollection;
import org.bson.Document;

For advanced operations:

import com.mongodb.client.ClientSession;
import com.mongodb.client.gridfs.GridFSBucket;
import com.mongodb.client.gridfs.GridFSBuckets;
import com.mongodb.client.vault.ClientEncryption;
import com.mongodb.client.vault.ClientEncryptions;

Basic Usage

import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.MongoCollection;
import org.bson.Document;

// Connect to MongoDB
MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017");

// Get database and collection
MongoDatabase database = mongoClient.getDatabase("mydb");
MongoCollection<Document> collection = database.getCollection("mycollection");

// Insert a document
Document doc = new Document("name", "John Doe")
    .append("age", 30)
    .append("city", "New York");
collection.insertOne(doc);

// Find documents
Document found = collection.find().first();
System.out.println(found.toJson());

// Close connection
mongoClient.close();

Architecture

The MongoDB Java driver is organized around these key components:

  • Client Management: MongoClients factory and MongoClient for connection management
  • Database Operations: MongoDatabase for database-level operations and collection management
  • Collection Operations: MongoCollection for document CRUD operations, indexing, and aggregation
  • Query System: Rich iterable interfaces (FindIterable, AggregateIterable) for query execution
  • Session Management: ClientSession for transactions and causally consistent operations
  • GridFS: Large file storage with GridFSBucket interface
  • Encryption: Client-side field level encryption via ClientEncryption

Capabilities

Connection Management

Factory methods for creating MongoDB client connections with various configuration options including connection strings, settings objects, and driver information.

public static MongoClient create();
public static MongoClient create(String connectionString);
public static MongoClient create(ConnectionString connectionString);
public static MongoClient create(MongoClientSettings settings);

Connection Management

Database Operations

Database-level operations including collection management, database commands, aggregation pipelines, and change streams.

public interface MongoDatabase {
    String getName();
    MongoCollection<Document> getCollection(String collectionName);
    <TDocument> MongoCollection<TDocument> getCollection(String collectionName, Class<TDocument> documentClass);
    Document runCommand(Bson command);
    void createCollection(String collectionName);
    void drop();
    ListCollectionsIterable<Document> listCollections();
    AggregateIterable<Document> aggregate(List<? extends Bson> pipeline);
    ChangeStreamIterable<Document> watch();
}

Database Operations

Collection CRUD Operations

Complete CRUD (Create, Read, Update, Delete) operations for documents including bulk operations, find-and-modify operations, and query execution.

public interface MongoCollection<TDocument> {
    // Insert operations
    InsertOneResult insertOne(TDocument document);
    InsertManyResult insertMany(List<? extends TDocument> documents);
    
    // Query operations  
    FindIterable<TDocument> find();
    FindIterable<TDocument> find(Bson filter);
    
    // Update operations
    UpdateResult updateOne(Bson filter, Bson update);
    UpdateResult updateMany(Bson filter, Bson update);
    ReplaceOneResult replaceOne(Bson filter, TDocument replacement);
    
    // Delete operations
    DeleteResult deleteOne(Bson filter);
    DeleteResult deleteMany(Bson filter);
    
    // Count operations
    long countDocuments();
    long estimatedDocumentCount();
}

Collection CRUD Operations

Query and Aggregation

Advanced querying capabilities including filtering, sorting, projection, aggregation pipelines, and MapReduce operations.

public interface FindIterable<TResult> extends MongoIterable<TResult> {
    FindIterable<TResult> filter(Bson filter);
    FindIterable<TResult> sort(Bson sort);
    FindIterable<TResult> projection(Bson projection);
    FindIterable<TResult> limit(int limit);
    FindIterable<TResult> skip(int skip);
}

public interface AggregateIterable<TResult> extends MongoIterable<TResult> {
    void toCollection();
    AggregateIterable<TResult> allowDiskUse(Boolean allowDiskUse);
    Document explain();
}

Query and Aggregation

Index Management

Index creation, management, and Atlas Search index operations for optimizing query performance.

// Standard indexes
String createIndex(Bson keys);
List<String> createIndexes(List<IndexModel> indexes);
void dropIndex(String indexName);
ListIndexesIterable<Document> listIndexes();

// Atlas Search indexes
String createSearchIndex(String indexName, Bson definition);
List<String> createSearchIndexes(List<SearchIndexModel> searchIndexes);
ListSearchIndexesIterable<Document> listSearchIndexes();

Index Management

Sessions and Transactions

Client sessions for transactions, causally consistent reads, and server session management.

public interface ClientSession extends AutoCloseable {
    void startTransaction();
    void startTransaction(TransactionOptions transactionOptions);
    void commitTransaction();
    void abortTransaction();
    <T> T withTransaction(TransactionBody<T> transactionBody);
    boolean hasActiveTransaction();
}

@FunctionalInterface
public interface TransactionBody<T> {
    T execute();
}

Sessions and Transactions

Change Streams

Real-time change monitoring at cluster, database, and collection levels with resume token support.

public interface ChangeStreamIterable<TResult> extends MongoIterable<ChangeStreamDocument<TResult>> {
    MongoChangeStreamCursor<ChangeStreamDocument<TResult>> cursor();
    ChangeStreamIterable<TResult> fullDocument(FullDocument fullDocument);
    ChangeStreamIterable<TResult> resumeAfter(BsonDocument resumeToken);
    ChangeStreamIterable<TResult> startAfter(BsonDocument startAfter);
}

Change Streams

GridFS File Storage

Large file storage and retrieval system with streaming upload/download capabilities and file metadata management.

public interface GridFSBucket {
    String getBucketName();
    int getChunkSizeBytes();
    
    // Upload operations
    GridFSUploadStream openUploadStream(String filename);
    ObjectId uploadFromStream(String filename, InputStream source);
    
    // Download operations
    GridFSDownloadStream openDownloadStream(ObjectId id);
    void downloadToStream(ObjectId id, OutputStream destination);
    
    // File management
    void delete(ObjectId id);
    void rename(ObjectId id, String newFilename);
    GridFSFindIterable find();
}

GridFS File Storage

Client-Side Field Level Encryption

Client-side field level encryption for sensitive data with data key management and queryable encryption support.

public interface ClientEncryption extends AutoCloseable {
    // Data key management
    BsonBinary createDataKey(String kmsProvider);
    BsonBinary createDataKey(String kmsProvider, DataKeyOptions dataKeyOptions);
    DeleteResult deleteKey(BsonBinary id);
    
    // Encryption/Decryption
    BsonBinary encrypt(BsonValue value, EncryptOptions options);
    BsonValue decrypt(BsonBinary encryptedValue);
    
    // Queryable encryption
    BsonDocument encryptExpression(Bson expression, EncryptOptions options);
}

Client-Side Field Level Encryption

Types

// Core client types
interface MongoClient extends MongoCluster, AutoCloseable {
    void close();
    ClusterDescription getClusterDescription();
}

interface MongoCluster {
    MongoDatabase getDatabase(String databaseName);
    ClientSession startSession();
    ClientSession startSession(ClientSessionOptions options);
    MongoIterable<String> listDatabaseNames();
}

// Common result types
class InsertOneResult {
    BsonValue getInsertedId();
    boolean wasAcknowledged();
}

class UpdateResult {
    long getMatchedCount();
    long getModifiedCount();
    BsonValue getUpsertedId();
    boolean wasAcknowledged();
}

class DeleteResult {
    long getDeletedCount();
    boolean wasAcknowledged();
}

// Cursor interfaces
interface MongoCursor<TResult> extends Iterator<TResult>, AutoCloseable {
    TResult tryNext();
    int available();
    ServerCursor getServerCursor();
    ServerAddress getServerAddress();
}

interface MongoChangeStreamCursor<TResult> extends MongoCursor<TResult> {
    BsonDocument getResumeToken();
}