or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

aggregation.mdauthentication-security.mdbson-types.mdchange-streams.mdcollection-operations.mdconfiguration.mdconnection-management.mddatabase-operations.mdgridfs.mdindex.mdquery-building.mdsessions-transactions.md
tile.json

tessl/maven-org-mongodb--mongo-java-driver

MongoDB Java Driver legacy all-in-one JAR providing comprehensive database connectivity for Java applications with synchronous APIs, CRUD operations, aggregation, GridFS, change streams, and authentication support

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
mavenpkg:maven/org.mongodb/mongo-java-driver@3.12.x

To install, run

npx @tessl/cli install tessl/maven-org-mongodb--mongo-java-driver@3.12.0

index.mddocs/

MongoDB Java Driver

MongoDB Java Driver is a comprehensive Java database connectivity library that provides synchronous and asynchronous APIs for connecting to and interacting with MongoDB databases. This legacy all-in-one JAR combines driver-core, driver-sync, driver-legacy, and BSON libraries into a single dependency, offering complete MongoDB functionality including CRUD operations, aggregation pipelines, GridFS file storage, change streams, transactions, and authentication mechanisms.

Package Information

  • Package Name: mongo-java-driver
  • Package Type: maven
  • Language: Java
  • Installation:
    <dependency>
        <groupId>org.mongodb</groupId>
        <artifactId>mongo-java-driver</artifactId>
        <version>3.12.14</version>
    </dependency>

Core Imports

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

For modern client interface:

import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.MongoCollection;

Basic Usage

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

// Connect to MongoDB
MongoClient mongoClient = new MongoClient("localhost", 27017);
MongoDatabase database = mongoClient.getDatabase("mydb");
MongoCollection<Document> collection = database.getCollection("users");

// Insert a document
Document user = new Document("name", "Alice")
    .append("age", 30)
    .append("email", "alice@example.com");
collection.insertOne(user);

// Find documents
for (Document doc : collection.find()) {
    System.out.println(doc.toJson());
}

// Close connection
mongoClient.close();

Architecture

The MongoDB Java Driver is built around several key components:

  • Client Management: MongoClient provides connection pooling and cluster management
  • Database Operations: MongoDatabase interface for database-level operations and collection access
  • Collection Operations: MongoCollection<T> provides type-safe CRUD operations with fluent query APIs
  • BSON System: Comprehensive document and type system with Document, BsonDocument, and strongly-typed BsonValue hierarchy
  • GridFS: Specialized APIs for storing and retrieving large files using MongoDB's GridFS specification
  • Change Streams: Real-time data monitoring with resumable change stream cursors
  • Session Management: Client sessions enabling multi-document transactions and causally consistent reads
  • Legacy APIs: Backward-compatible legacy interfaces for migration from older driver versions

Capabilities

Connection Management

Core client creation and connection management for MongoDB deployments including standalone servers, replica sets, and sharded clusters.

// Legacy MongoClient (extends Mongo class)
public class MongoClient extends Mongo implements Closeable {
    public MongoClient();
    public MongoClient(String host);
    public MongoClient(String host, int port);
    public MongoClient(ServerAddress addr);
    public MongoClient(List<ServerAddress> seeds);
    public MongoClient(MongoClientURI uri);
    
    public MongoDatabase getDatabase(String databaseName);
    public MongoIterable<String> listDatabaseNames();
    public void close();
}

// Modern client factory (recommended)
public final class MongoClients {
    public static MongoClient create();
    public static MongoClient create(String connectionString);
    public static MongoClient create(ConnectionString connectionString);
    public static MongoClient create(MongoClientSettings settings);
    public static MongoClient create(ConnectionString connectionString, MongoDriverInformation mongoDriverInformation);
    public static MongoClient create(MongoClientSettings settings, MongoDriverInformation mongoDriverInformation);
}

Connection Management

Database Operations

Database-level operations including collection management, command execution, and database administration.

public interface MongoDatabase {
    String getName();
    MongoCollection<Document> getCollection(String collectionName);
    <TDocument> MongoCollection<TDocument> getCollection(String collectionName, Class<TDocument> documentClass);
    
    void createCollection(String collectionName);
    void createCollection(String collectionName, CreateCollectionOptions options);
    MongoIterable<String> listCollectionNames();
    ListCollectionsIterable<Document> listCollections();
    
    Document runCommand(Bson command);
    void drop();
}

Database Operations

Collection Operations & CRUD

Complete CRUD operations with fluent query APIs, bulk operations, and advanced query capabilities including aggregation and indexing.

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

Collection Operations & CRUD

Query Building & Filters

Comprehensive query building utilities for creating MongoDB queries, filters, sorts, projections, and updates with type safety.

// Filter builders
public final class Filters {
    public static Bson eq(String fieldName, Object value);
    public static Bson ne(String fieldName, Object value);
    public static Bson gt(String fieldName, Object value);
    public static Bson gte(String fieldName, Object value);
    public static Bson lt(String fieldName, Object value);
    public static Bson lte(String fieldName, Object value);
    public static Bson in(String fieldName, Object... values);
    public static Bson and(Bson... filters);
    public static Bson or(Bson... filters);
}

// Update builders  
public final class Updates {
    public static Bson set(String fieldName, Object value);
    public static Bson inc(String fieldName, Number amount);
    public static Bson push(String fieldName, Object value);
    public static Bson pull(String fieldName, Object value);
}

Query Building & Filters

Aggregation Framework

MongoDB aggregation pipeline operations with type-safe stage builders and result processing.

public interface MongoCollection<TDocument> {
    AggregateIterable<TDocument> aggregate(List<? extends Bson> pipeline);
    <TResult> AggregateIterable<TResult> aggregate(List<? extends Bson> pipeline, Class<TResult> resultClass);
}

public final class Aggregates {
    public static Bson match(Bson filter);
    public static Bson project(Bson projection);
    public static Bson sort(Bson sort);
    public static Bson group(Object id, BsonField... fieldAccumulators);
    public static Bson lookup(String from, String localField, String foreignField, String as);
    public static Bson unwind(String fieldName);
}

Aggregation Framework

GridFS File Storage

Specialized file storage system for handling large files using MongoDB's GridFS specification with streaming upload and download capabilities.

public interface GridFSBucket {
    ObjectId uploadFromStream(String filename, InputStream source);
    void downloadToStream(ObjectId id, OutputStream destination);
    
    GridFSUploadStream openUploadStream(String filename);
    GridFSDownloadStream openDownloadStream(ObjectId id);
    
    GridFSFindIterable find();
    void delete(ObjectId id);
    void rename(ObjectId id, String newFilename);
}

public final class GridFSBuckets {
    public static GridFSBucket create(MongoDatabase database);
    public static GridFSBucket create(MongoDatabase database, String bucketName);
}

GridFS File Storage

Change Streams

Real-time data monitoring with resumable change streams for tracking database, collection, and document-level changes.

public interface MongoClient {
    ChangeStreamIterable<Document> watch();
    ChangeStreamIterable<Document> watch(List<? extends Bson> pipeline);
    <TResult> ChangeStreamIterable<TResult> watch(List<? extends Bson> pipeline, Class<TResult> resultClass);
}

public interface ChangeStreamIterable<TResult> extends MongoIterable<ChangeStreamDocument<TResult>> {
    ChangeStreamIterable<TResult> fullDocument(FullDocument fullDocument);
    ChangeStreamIterable<TResult> resumeAfter(BsonDocument resumeToken);
    ChangeStreamIterable<TResult> startAfter(BsonDocument startAfter);
    ChangeStreamIterable<TResult> maxAwaitTime(long maxAwaitTime, TimeUnit timeUnit);
}

Change Streams

Sessions & Transactions

Client session management for multi-document ACID transactions and causally consistent read operations.

public interface MongoClient {
    ClientSession startSession();
    ClientSession startSession(ClientSessionOptions options);
}

public interface ClientSession extends Closeable {
    void startTransaction();
    void startTransaction(TransactionOptions transactionOptions);
    void commitTransaction();
    void abortTransaction();
    
    <T> T withTransaction(TransactionBody<T> transactionBody);
    
    BsonTimestamp getOperationTime();
    BsonDocument getClusterTime();
}

Sessions & Transactions

BSON Data Types

Comprehensive BSON document and type system providing both flexible document APIs and strongly-typed value representations.

// Flexible document representation
public class Document extends LinkedHashMap<String, Object> {
    public Document();
    public Document(String key, Object value);
    public Document append(String key, Object value);
    
    public String toJson();
    public static Document parse(String json);
}

// Type-safe BSON document
public class BsonDocument extends BsonValue implements Map<String, BsonValue> {
    public BsonDocument();
    public BsonDocument append(String key, BsonValue value);
    public BsonValue get(Object key);
}

// BSON value hierarchy
public abstract class BsonValue {
    public abstract BsonType getBsonType();
    public boolean isString();
    public boolean isDocument();
    public BsonString asString();
    public BsonDocument asDocument();
}

BSON Data Types

Authentication & Security

Comprehensive authentication mechanisms including SCRAM, X.509 certificates, Kerberos, and client-side field-level encryption.

public final class MongoCredential {
    public static MongoCredential createCredential(String userName, String database, char[] password);
    public static MongoCredential createScramSha1Credential(String userName, String source, char[] password);
    public static MongoCredential createScramSha256Credential(String userName, String source, char[] password);
    public static MongoCredential createMongoX509Credential(String userName);
    public static MongoCredential createGSSAPICredential(String userName);
}

// Client-side encryption
public interface ClientEncryption extends Closeable {
    BsonBinary encrypt(BsonValue value, EncryptOptions options);
    BsonValue decrypt(BsonBinary encryptedValue);
    BsonBinary createDataKey(String kmsProvider);
}

Authentication & Security

Configuration & Options

Client configuration options for connection pooling, read/write preferences, timeouts, and codec registries.

public final class MongoClientOptions {
    public static Builder builder();
    
    public static final class Builder {
        public Builder connectionsPerHost(int connectionsPerHost);
        public Builder connectTimeout(int connectTimeout);
        public Builder socketTimeout(int socketTimeout);
        public Builder readPreference(ReadPreference readPreference);
        public Builder writeConcern(WriteConcern writeConcern);
        public Builder codecRegistry(CodecRegistry codecRegistry);
        public MongoClientOptions build();
    }
}

// Read preferences
public abstract class ReadPreference {
    public static ReadPreference primary();
    public static ReadPreference secondary();
    public static ReadPreference secondaryPreferred();
    public static ReadPreference nearest();
}

// Write concerns
public class WriteConcern {
    public static final WriteConcern ACKNOWLEDGED;
    public static final WriteConcern UNACKNOWLEDGED;
    public static final WriteConcern MAJORITY;
}

Configuration & Options