CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/pypi-pymongo

Official Python driver for MongoDB providing comprehensive tools for database operations, BSON handling, and GridFS file storage

Pending
Overview
Eval results
Files

client-connection.mddocs/

Client and Connection Management

MongoDB client creation, connection management, authentication, and configuration options including connection pooling, timeouts, and replica set support.

Capabilities

MongoClient Creation

Create and configure MongoDB client connections with various options for production deployments.

class MongoClient:
    def __init__(
        self,
        host='localhost',
        port=27017,
        document_class=dict,
        tz_aware=False,
        connect=True,
        type_registry=None,
        **kwargs
    ):
        """
        Create a MongoDB client.

        Parameters:
        - host: hostname or IP address, or MongoDB URI
        - port: port number
        - document_class: default class to use for documents
        - tz_aware: if True, datetime instances are timezone-aware
        - connect: if True, immediately connect to MongoDB
        - maxPoolSize: maximum number of connections per pool
        - minPoolSize: minimum number of connections per pool
        - maxIdleTimeMS: maximum idle time for pooled connections
        - waitQueueTimeoutMS: timeout for waiting for available connection
        - serverSelectionTimeoutMS: timeout for server selection
        - socketTimeoutMS: timeout for socket operations
        - ssl: enable SSL/TLS connection
        - username: authentication username
        - password: authentication password
        - authSource: database to authenticate against
        - authMechanism: authentication mechanism
        """

Database Access

Access databases and manage database-level operations.

class MongoClient:
    def get_database(self, name, **kwargs):
        """
        Get a database instance.

        Parameters:
        - name: database name
        - codec_options: BSON codec options
        - read_preference: read preference for operations
        - write_concern: write concern for operations
        - read_concern: read concern for operations

        Returns:
        Database instance
        """

    def list_database_names(self, session=None, **kwargs):
        """
        List database names.

        Parameters:
        - session: optional ClientSession

        Returns:
        List of database names
        """

    def list_databases(self, session=None, **kwargs):
        """
        List databases with metadata.

        Parameters:
        - session: optional ClientSession

        Returns:
        Command cursor with database information
        """

Connection Management

Manage client connections and server information.

class MongoClient:
    def close(self):
        """Close all connections in the connection pools."""

    def server_info(self, session=None):
        """
        Get server version and build information.

        Parameters:
        - session: optional ClientSession

        Returns:
        dict: Server information
        """

    @property
    def address(self):
        """
        Primary server address as (host, port) tuple.

        Returns:
        tuple: (host, port) or None if not connected
        """

    @property
    def primary(self):
        """
        Primary server address.

        Returns:
        tuple: (host, port) or None for standalone
        """

    @property
    def secondaries(self):
        """
        Secondary server addresses.

        Returns:
        set: Set of (host, port) tuples
        """

    @property
    def arbiters(self):
        """
        Arbiter server addresses.

        Returns:
        set: Set of (host, port) tuples
        """

Session Management

Create and manage client sessions for transactions and consistency.

class MongoClient:
    def start_session(
        self,
        causal_consistency=None,
        default_transaction_options=None,
        snapshot=False
    ):
        """
        Start a client session.

        Parameters:
        - causal_consistency: enable causal consistency
        - default_transaction_options: default transaction options
        - snapshot: enable snapshot reads

        Returns:
        ClientSession instance
        """

class ClientSession:
    def end_session(self):
        """End the session and return connection to pool."""

    @property
    def session_id(self):
        """
        Session identifier.

        Returns:
        dict: Session ID document
        """

    @property
    def cluster_time(self):
        """
        Cluster time for causal consistency.

        Returns:
        dict: Cluster time document
        """

    @property
    def operation_time(self):
        """
        Operation time for causal consistency.

        Returns:
        Timestamp: Operation time
        """

    def advance_cluster_time(self, cluster_time):
        """
        Advance cluster time.

        Parameters:
        - cluster_time: cluster time document
        """

    def advance_operation_time(self, operation_time):
        """
        Advance operation time.

        Parameters:
        - operation_time: operation timestamp
        """

Usage Examples

Basic Connection

from pymongo import MongoClient

# Connect to local MongoDB
client = MongoClient()

# Connect with custom host/port
client = MongoClient('mongodb://example.com:27017/')

# Connect with authentication
client = MongoClient(
    'mongodb://username:password@example.com:27017/mydb'
)

Connection Pooling

from pymongo import MongoClient

# Configure connection pool
client = MongoClient(
    'mongodb://example.com:27017/',
    maxPoolSize=50,
    minPoolSize=10,
    maxIdleTimeMS=30000,
    waitQueueTimeoutMS=5000
)

SSL/TLS Connection

from pymongo import MongoClient

# Enable SSL
client = MongoClient(
    'mongodb://example.com:27017/',
    ssl=True,
    ssl_ca_certs='/path/to/ca.pem',
    ssl_certfile='/path/to/client.pem'
)

Working with Sessions

from pymongo import MongoClient

client = MongoClient()
db = client.mydb
collection = db.mycollection

# Use session for causal consistency
with client.start_session(causal_consistency=True) as session:
    collection.insert_one({"name": "Alice"}, session=session)
    doc = collection.find_one({"name": "Alice"}, session=session)

Install with Tessl CLI

npx tessl i tessl/pypi-pymongo

docs

advanced-queries.md

bson-handling.md

bulk-transactions.md

client-connection.md

database-collection.md

gridfs-storage.md

index.md

monitoring-events.md

tile.json