Official Python driver for MongoDB providing comprehensive tools for database operations, BSON handling, and GridFS file storage
—
MongoDB client creation, connection management, authentication, and configuration options including connection pooling, timeouts, and replica set support.
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
"""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
"""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
"""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
"""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'
)from pymongo import MongoClient
# Configure connection pool
client = MongoClient(
'mongodb://example.com:27017/',
maxPoolSize=50,
minPoolSize=10,
maxIdleTimeMS=30000,
waitQueueTimeoutMS=5000
)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'
)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