Docs Menu
Docs Home
/ / /
PyMongo

What's New

On this page

  • What's New in 4.8
  • What's New in 4.7

Learn what's new in:

  • Version 4.8

  • Version 4.7

Warning

Breaking Changes

PyMongo v4.8 contains breaking changes. For more information, see Version 4.8 Breaking Changes.

The PyMongo v4.8 release includes the following new features:

  • Implemented Secure Software Development Life Cycle (SSDLC) automation in the release process. GitHub releases include a software bill of materials (SBOM) and signature files corresponding to the distribution files released on PyPI.

  • In objects of type bson.binary.Binary, the repr() method is redacted when the binary subtype is SENSITIVE_SUBTYPE (8).

  • Fixed a bug in change streams where both the startAtOperationTime and resumeToken fields could be added to a retry attempt, which caused the retry to fail.

  • On Windows, changed handshake metadata for os.name to Windows to improve import time.

  • Improved performance of MongoClient operations, especially when the driver is running many operations concurrently.

  • Added a fallback to the stdlib ssl module if importing the pyopenssl module fails with an AttributeError.

Warning

Breaking Changes

PyMongo v4.7 contains breaking changes. For more information, see Version 4.7 Breaking Changes.

The PyMongo v4.7 release includes the following new features:

  • Added the Hello.connection_id, CommandStartedEvent.server_connection_id, CommandSucceededEvent.server_connection_id, and CommandFailedEvent.server_connection_id properties.

  • Added support for name suffixes for Key Management Service (KMS) providers for Client-Side Field Level Encryption (CSFLE). This feature requires pymongocrypt v1.9+ and libmongocrypt v1.9+. For more information, see the API documentation for the AutoEncryptionOpts class.

  • Improved the performance of encoding BSON documents to JSON.

  • The ClientEncryption.encrypt() and ClientEncryption.encrypt_expression() methods now allow the key_id argument to be passed in as a UUID Object.

  • Inflating a RawBSONDocument object containing a Code value no longer causes an error.

  • Fixed a bug in Python 3.12 where the error message RuntimeError: can't create new thread at interpreter shutdown could be written to stderr when a MongoClient thread starts as the Python interpreter is shutting down.

  • Fixed a bug where Int64 instances could not always be encoded by orjson. Code like the following example now runs correctly:

>>> import orjson
>>> from bson import json_util
>>> orjson.dumps({'a': Int64(1)}, default=json_util.default, option=orjson.OPT_PASSTHROUGH_SUBCLASS)
← Troubleshooting