pymongo
– Python driver for MongoDB¶
Python driver for MongoDB.
- pymongo.version = '4.2.0'¶
Current version of PyMongo.
- pymongo.MongoClient¶
Alias for
pymongo.mongo_client.MongoClient
.
- pymongo.ReadPreference¶
Alias for
pymongo.read_preferences.ReadPreference
.
- pymongo.MIN_SUPPORTED_WIRE_VERSION¶
The minimum wire protocol version PyMongo supports.
- pymongo.MAX_SUPPORTED_WIRE_VERSION¶
The maximum wire protocol version PyMongo supports.
- pymongo.timeout(seconds: Optional[float]) AbstractContextManager ¶
(Provisional) Apply the given timeout for a block of operations.
Note
timeout()
is currently provisional. Backwards incompatible changes may occur before becoming officially supported.Use
timeout()
in a with-statement:with pymongo.timeout(5): client.db.coll.insert_one({}) client.db.coll2.insert_one({})
When the with-statement is entered, a deadline is set for the entire block. When that deadline is exceeded, any blocking pymongo operation will raise a timeout exception. For example:
try: with pymongo.timeout(5): client.db.coll.insert_one({}) time.sleep(5) # The deadline has now expired, the next operation will raise # a timeout exception. client.db.coll2.insert_one({}) except PyMongoError as exc: if exc.timeout: print(f"block timed out: {exc!r}") else: print(f"failed with non-timeout error: {exc!r}")
When nesting
timeout()
, the newly computed deadline is capped to at most the existing deadline. The deadline can only be shortened, not extended. When exiting the block, the previous deadline is restored:with pymongo.timeout(5): coll.find_one() # Uses the 5 second deadline. with pymongo.timeout(3): coll.find_one() # Uses the 3 second deadline. coll.find_one() # Uses the original 5 second deadline. with pymongo.timeout(10): coll.find_one() # Still uses the original 5 second deadline. coll.find_one() # Uses the original 5 second deadline.
- Parameters
seconds: A non-negative floating point number expressing seconds, or None.
- Raises
ValueError
: When seconds is negative.
New in version 4.2.
Sub-modules:
bulk
– The bulk write operations interfacechange_stream
– Watch changes on a collection, database, or clusterclient_options
– Read only configuration options for a MongoClient.client_session
– Logical sessions for sequential operationscollation
– Tools for working with collations.collection
– Collection level operationscommand_cursor
– Tools for iterating over MongoDB command resultscursor
– Tools for iterating over MongoDB query resultsdatabase
– Database level operationsdriver_info
encryption
– Client-Side Field Level Encryptionencryption_options
– Automatic Client-Side Field Level Encryptionerrors
– Exceptions raised by thepymongo
packagemongo_client
– Tools for connecting to MongoDBmonitoring
– Tools for monitoring driver events.operations
– Operation class definitionspool
– Pool module for use with a MongoDB client.read_concern
– Tools for working with read concern.read_preferences
– Utilities for choosing which member of a replica set to read from.results
– Result class definitionsserver_api
– Support for MongoDB Stable APIserver_description
– An object representation of a server the driver is connected to.topology_description
– An object representation of a deployment of MongoDB servers.uri_parser
– Tools to parse and validate a MongoDB URIwrite_concern
– Tools for specifying write concernevent_loggers
– Example loggers