次の新機能をご覧ください。
4.18の新機能
PyMongo v 4.18リリースには、次の新機能が含まれています。
MongoDB Server v 9.0のサポートを追加します。
Adds the
srvAllowedHostsSuffixconnection option, which you can set as a URI option or as aMongoClientorAsyncMongoClientkeyword argument. When you connect by using amongodb+srv://connection string, this option overrides the default requirement that the hosts returned by the SRV record have the same parent domain as the seed hostname. The suffix can't be a public suffix, as listed in the Public Suffix List.Adds general availability support for Queryable Encryption prefix, suffix, and substring queries against MongoDB Server v9.0 or later. These queries require
libmongocryptv1.20.0 or later. This release makes the following related changes:Adds the
Algorithm.STRINGvalue and theStringOptsclass, which replaceAlgorithm.TEXTPREVIEWandTextOpts. The replaced values are deprecated.Adds the
QueryType.PREFIX,QueryType.SUFFIX, andQueryType.SUBSTRINGquery types. The correspondingPREFIXPREVIEW,SUFFIXPREVIEW, andSUBSTRINGPREVIEWquery types remain available for experimental use with MongoDB Server versions earlier than v9.0.Adds the
string_optsparameter to theClientEncryption.encrypt()andAsyncClientEncryption.encrypt()methods, and deprecates thetext_optsparameter. Eachpymongocryptrelease accepts only one of these two parameter names. The driver raises aConfigurationErrorif you passtext_optswithpymongocryptv1.19 or later,string_optswithpymongocryptv1.16 through v1.18, or both names at once.
Improves TLS connection performance by reusing TLS sessions across connections to the same server, which avoids a full handshake on each new connection. Synchronous clients support session resumption on all Python versions, and asynchronous clients support it on Python v3.11 or later.
Improves performance for Intelligent Workload Management by retrying overload errors only when a retry isn't expected to worsen server conditions.
Adds support for exhaust cursors (
CursorType.EXHAUST) againstmongosv7.1 or later.Improves the performance and memory usage of decoding large documents to
bson.raw_bson.RawBSONDocumentobjects, and improves the performance of lazily decoding aRawBSONDocumentobject when the C extension is available.Redacts potentially sensitive authentication mechanism properties, such as AWS session tokens, from the string representations of
MongoClientandAsyncMongoClientobjects.Validates the decompressed size of an
OP_COMPRESSEDmessage againstmax_message_size, which prevents memory exhaustion from maliciously crafted compressed server responses.Fixes a potential out-of-bounds read in the C extension when decoding an array of BSON documents. If an embedded document declares a length that exceeds the bytes remaining in the array, the driver now raises a
bson.errors.InvalidBSONerror.Fixes the
bson.json_util.loads()method to reject$timestampvalues that contain fields other thantandi.Fixes a bug on Windows, and on macOS when you use PyOpenSSL, in which the
SSL_CERT_FILEandSSL_CERT_DIRenvironment variables were merged with the operating system orcertificertificate store instead of replacing it.Deprecates PyPy support. Support will be removed in a future release.
このリリースの詳細については GitHub の4 v.18 リリースノートを参照してください。
4.17 の新機能
PyMongo v 4.17リリースには、次の新機能が含まれています。
ClientSession.bind()とAsyncClientSession.bind()コンテキスト マネージャーを追加します。これにより、セッションを各操作に渡すのではなく、ブロック内のすべてのデータベース操作にセッションをバインドできます。bind()メソッドの詳細については、トランザクションガイドを参照してください。Ingress 接続レート制限機能のサポートを追加します。過負荷サーバーに接続した際の動作を改善するには、
max_adaptive_retriesとenable_overload_retargetingオプションを使用します。これらのオプションの詳細については、 CRUD操作の構成ガイドの 「オーバーロード再試行オプション」 を参照してください。次の
bson.son.SONメソッドを非推奨にします。has_key(): 代わりにin演算子を使用します。iterkeys(): 代わりにdict.keys()を使用してください。itervalues(): 代わりにdict.values()を使用してください。
4.16 の新機能
PyMongo v 4.16リリースには、次の新機能が含まれています。
bson.errors.InvalidDocumentエラーメッセージから無効なドキュメントを排除することで、機密データのリークのリスクを軽減します。ドライバーの
dnspython要件を v2.6.1 以降に更新します。次の方法で Zstandard サポートを更新します。
Python v3.14 以降を使用する場合、 PyMongo は標準ライブラリを使用します。
以前のPythonバージョンを使用している場合、 PyMongo は
backports.zstdパッケージを使用します。
次のメソッドの戻り値の型を更新して、
Noneを含めます。これらのメソッドは、CollectionまたはAsyncCollectionのインスタンスで呼び出すことができます。find_one_and_update()find_one_and_replace()find_one_and_delete()
1 次元の NumPy 配列を
BinaryVector型に変換する ためのサポートを追加します。別のインスタンスがすでにロードされている場合は、
ClientEncryptionクラスがcrypt_sharedライブラリを自動的に読み込まないようにします。これにより、次のエラーが解決されます。MongoCryptError: An existing crypt_shared library is loaded by the application
4.15 の新機能
PyMongo v 4.15リリースには、次の新機能が含まれています。
Queryable Encryption のプレフィックス、サフィックス、サブストリング クエリの実験的なサポートを追加します。これらの機能には
pymongocrypt1.16 以降が必要です。QE の詳細については、「 使用中の暗号化 」を参照してください。注意
試験用機能
Queryable Encryption のプレフィックス、サフィックス、サブストリングのクエリは不安定であり、一般提供(GA)されるまでセキュリティは保証されません。実験的なワークロードでのみ使用してください。
bson.codec_options.TypeRegistryクラスを使用して、 BSONDecimal128値をPythondecimal.Decimal値にエンコードとデコードのサポートを追加します。次の例は、bson.decimal128.DecimalEncoderクラスを使用して、Decimal128値をdecimal.Decimal値にエンコードする方法を示しています。opts = CodecOptions(type_registry=TypeRegistry([DecimalEncoder()])) bson.encode({"d": decimal.Decimal('1.0')}, codec_options=opts) Windows ARM64 ウィザードのサポートを追加します。
4.14 の新機能
PyMongo v 4.14リリースには、次の新機能が含まれています。
フリー スレッディング機能を含む、 Python 3.14 の予備サポートを追加します。ドライバーはPython 3.14 の次の機能をまだサポートしていません。
サブインタープリター(
concurrent.interpreters)暗号化を使用したフリースレッド
mod_wsgi
Python 3.13 によるフリー スレッディングの実験的なサポートを廃止します。
次のプロパティを
bson.codec_options.TypeRegistryクラスに追加します。.codecs:TypeRegistryオブジェクトのタイプ固有のコーデックへのアクセスを提供します.fallback_encoder:TypeRegistryオブジェクトのフォールバック エンコードへのアクセスを提供します
append_metadata()メソッドをMongoClientクラスとAsyncMongoClientクラスに追加します。このメソッドを使用して、クライアントのメタデータをオンデマンドでサーバーに送信できます。プライマリ読み取り参照を使用する場合のサーバー選択パフォーマンスが向上します。
4.13 の新機能
PyMongo v 4.13リリースには、次の新機能が含まれています。
PyMongo Async API は通常利用可能です。PyMongoドライバーまたはMotorライブラリからPyMongo Async APIに移行する方法については、 「PyMongo Async への移行」ガイドを参照してください。
w="majority"を使用している場合にWriteConcern()が評価できないバグを修正しました。
このリリースで解決された問題の完全なリストを確認するには、Jira リリースノート を参照してください。
4.12 の新機能
PyMongo v 4.12リリースには、次の新機能が含まれています。
AutoEncryptionOptsへのkey_expiration_ms引数を使用して、DEKキャッシュの有効期間を構成するためのサポートを追加します。CSFLE で
$lookupと MongoDB Server 8.1 以降で QE のサポートを追加します。gridfs.asynchronous.grid_file.AsyncGridFSBucket.rename_by_name()メソッドとgridfs.grid_file.GridFSBucket.rename_by_name()メソッドを追加します。これらのメソッドを使用すると、複数のリビジョニングされたファイルの名前をよりパフォーマンス的に変更できます。gridfs.asynchronous.grid_file.AsyncGridFSBucket.delete_by_name()メソッドとgridfs.grid_file.GridFSBucket.delete_by_name()メソッドを追加します。これらのメソッドを使用すると、複数のリビジョニングされたファイルをよりパフォーマンス的に削除できます。AsyncMongoClientオブジェクトは作成時にmongodb+srv://接続文字列の DNS 解決を実行しなくなりました。asyncioループのブロックを回避するために、 PyMongo はクライアントが最初に接続されるまで解決を延期するようになりました。pymongo.asynchronous.collection.AsyncCollection.distinct()メソッドとpymongo.collection.Collection.distinct()メソッドにインデックスヒントのサポートを追加します。PrimaryPreferred、Secondary、SecondaryPreferred、Nearestの読み込み設定(read preference)のhedgeパラメータを廃止します。PyMongo v5.0 ではhedgeのサポートが削除されます。PyMongo Async ドライバーから PyOpenSSL サポートを削除します。
3 未満の有効な SRV ホスト名を許可します。
4.11 の新機能
PyMongo v 4.11リリースには、次の新機能が含まれています。
Python v3.13+を実行中際にフリースレッド CPython のサポートを追加します。無料スレッドの詳細については、Pythonドキュメントを参照してください。
使用中の暗号化には
pymongocryptv1.12 以降が必要です。MongoClient.address()メソッドとAsyncMongoClient.address()メソッドは、接続されていないクライアントで呼び出されると正しくブロックされます。IndexModelクラスとSearchIndexModelクラスの__repr__サポートを追加します。次のメソッドに
sortパラメータを追加します。Collection.update_one()Collection.replace_one()operations.UpdateOne()operations.UpdateMany()
MongoClient.bulkWrite()メソッドとAsyncMongoClient.bulk_write()メソッドでは、orderedまたはverboseResultsオプションがTrueに設定されている場合に未確認の書込みで使用すると、エラーがスローされます。レガシーMongoDB拡張JSON日時表現の使用時に、
DatetimeMSが'{"$date": X}'ではなく'{"$date": "X"}'として誤ってエンコードされるバグを修正します。bson.json_util.loads()メソッドが無効な$date値を解析するときにValueErrorではなくIndexErrorを発生させるバグを修正します。
4.10 の新機能
PyMongo v 4.10リリースには、次の新機能が含まれています。
アプリケーションでC拡張機能が使用されている場合、
driver.nameクライアントメタデータフィールドに"c"を追加します。AsyncMongoClientがデッドロックを発生させる可能性があるバグを修正します。
4.9 の新機能
PyMongo v 4.9リリースには、次の新機能が含まれています。
MongoDB Server 8.0およびPython 3.13のサポートを追加します。
Queryable Encryption範囲クエリのサポートを追加します。 この機能を使用するには、アプリをMongoDB Server 8.0以降に接続する必要があります。 Queryable Encryptionの詳細については、 MongoDB Serverマニュアルの「 Queryable Encryption 」を参照してください。
Motorの代わりに新しい実験的な非同期APIを追加します。 このAPIはbetaであり、一般利用可能なリリースより前に変更される可能性があります。
4.8 の新機能
PyMongo v 4.8リリースには、次の新機能が含まれています。
リリース プロセスに安全なソフトウェア開発ライフ サイクル(SSDC)のオートメーションを実装しました。 Githubリリースには、PyPI でリリースされたディストリビューション ファイルに対応するソフトウェア アイテムの請求書(MBOM)と署名ファイルが含まれます。
bson.binary.Binaryタイプのオブジェクトでは、バイナリ サブタイプがSENSITIVE_SUBTYPE(8)の場合、repr()メソッドは編集されます。変更ストリームで、 フィールドと フィールドの両方が再試行に追加でき、再試行が失敗するバグを修正しました。
startAtOperationTimeresumeTokenWindows では、インポート時間を改善するために、
os.nameのハンドシェイク メタデータをWindowsに変更しました。特にドライバーが多くの操作を同時に実行している場合の
MongoClient操作のパフォーマンスが向上しました。pyopensslモジュールのインポートがAttributeErrorとともに失敗する場合に、stdlibsslモジュールへのフォールバックを追加しました。
4.7 の新機能
PyMongo v 4.7リリースには、次の新機能が含まれています。
Hello.connection_id、CommandStartedEvent.server_connection_id、CommandSucceededEvent.server_connection_id、CommandFailedEvent.server_connection_id を追加しました。プロパティ。クライアント側フィールド レベル暗号化(CSFLE)用の KMS(KMS)プロバイダーの名前サフィックスのサポートを追加しました。 この機能には
pymongocryptv1.9+ とlibmongocryptv1.9+ が必要です。詳細については、AutoEncryptionOptsクラスのAPIドキュメントを参照してください。BSON ドキュメントを JSON にエンコードする際のパフォーマンスが向上しました。
ClientEncryption.encrypt()メソッドとClientEncryption.encrypt_expression()メソッドで、key_id引数をUUIDオブジェクトとして渡すことができるようになりました。Code値を含むRawBSONDocumentオブジェクトをインスタンス化しても、エラーが発生しなくなりました。Python 3.12のバグを修正しました Python インタープリタがシャットダウンして
MongoClientスレッドが起動するときに、エラー メッセージRuntimeError: can't create new thread at interpreter shutdownがstderrに書き込まれる可能性があります。Int64インスタンスがorjsonライブラリによって必ずしもエンコードされないバグを修正しました。次の例のようなコードが正しく実行されるようになりました。
import orjson from bson import json_util orjson.dumps({'a': Int64(1)}, default=json_util.default, option=orjson.OPT_PASSTHROUGH_SUBCLASS)