AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

リリースノート

次の新機能をご覧ください。

警告

重大な変更

PyMongo v 4.18 重大な変更が含まれています。 詳細については、「バージョン4.18重大な変更 」を参照してください。

PyMongo v 4.18リリースには、次の新機能が含まれています。

  • MongoDB Server v 9.0のサポートを追加します。

  • Adds the srvAllowedHostsSuffix connection option, which you can set as a URI option or as a MongoClient or AsyncMongoClient keyword argument. When you connect by using a mongodb+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 libmongocrypt v1.20.0 or later. This release makes the following related changes:

    • Adds the Algorithm.STRING value and the StringOpts class, which replace Algorithm.TEXTPREVIEW and TextOpts. The replaced values are deprecated.

    • Adds the QueryType.PREFIX, QueryType.SUFFIX, and QueryType.SUBSTRING query types. The corresponding PREFIXPREVIEW, SUFFIXPREVIEW, and SUBSTRINGPREVIEW query types remain available for experimental use with MongoDB Server versions earlier than v9.0.

    • Adds the string_opts parameter to the ClientEncryption.encrypt() and AsyncClientEncryption.encrypt() methods, and deprecates the text_opts parameter. Each pymongocrypt release accepts only one of these two parameter names. The driver raises a ConfigurationError if you pass text_opts with pymongocrypt v1.19 or later, string_opts with pymongocrypt v1.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) against mongos v7.1 or later.

  • Improves the performance and memory usage of decoding large documents to bson.raw_bson.RawBSONDocument objects, and improves the performance of lazily decoding a RawBSONDocument object when the C extension is available.

  • Redacts potentially sensitive authentication mechanism properties, such as AWS session tokens, from the string representations of MongoClient and AsyncMongoClient objects.

  • Validates the decompressed size of an OP_COMPRESSED message against max_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.InvalidBSON error.

  • Fixes the bson.json_util.loads() method to reject $timestamp values that contain fields other than t and i.

  • Fixes a bug on Windows, and on macOS when you use PyOpenSSL, in which the SSL_CERT_FILE and SSL_CERT_DIR environment variables were merged with the operating system or certifi certificate store instead of replacing it.

  • Deprecates PyPy support. Support will be removed in a future release.

このリリースの詳細については GitHub の4 v.18 リリースノートを参照してください。

PyMongo v 4.17リリースには、次の新機能が含まれています。

  • ClientSession.bind()AsyncClientSession.bind() コンテキスト マネージャーを追加します。これにより、セッションを各操作に渡すのではなく、ブロック内のすべてのデータベース操作にセッションをバインドできます。bind() メソッドの詳細については、トランザクションガイドを参照してください。

  • Ingress 接続レート制限機能のサポートを追加します。過負荷サーバーに接続した際の動作を改善するには、max_adaptive_retriesenable_overload_retargeting オプションを使用します。これらのオプションの詳細については、 CRUD操作の構成ガイドの 「オーバーロード再試行オプション」 を参照してください。

  • 次の bson.son.SON メソッドを非推奨にします。

    • has_key(): 代わりに in 演算子を使用します。

    • iterkeys(): 代わりに dict.keys() を使用してください。

    • itervalues(): 代わりに dict.values() を使用してください。

PyMongo v 4.16リリースには、次の新機能が含まれています。

  • bson.errors.InvalidDocument エラーメッセージから無効なドキュメントを排除することで、機密データのリークのリスクを軽減します。

  • ドライバーの dnspython 要件を v2.6.1 以降に更新します。

  • Eventlet サポートを除きます。アプリケーションでEventlet が使用されている場合は、geventasyncio などのサポートされている同時実行モデルに移行します。

  • 次の方法で 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

PyMongo v 4.15リリースには、次の新機能が含まれています。

  • Queryable Encryption のプレフィックス、サフィックス、サブストリング クエリの実験的なサポートを追加します。これらの機能には pymongocrypt 1.16 以降が必要です。QE の詳細については、「 使用中の暗号化 」を参照してください。

    注意

    試験用機能

    Queryable Encryption のプレフィックス、サフィックス、サブストリングのクエリは不安定であり、一般提供(GA)されるまでセキュリティは保証されません。実験的なワークロードでのみ使用してください。

  • bson.codec_options.TypeRegistryクラスを使用して、 BSON Decimal128 値をPython decimal.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 ウィザードのサポートを追加します。

警告

重大な変更

PyMongo v 4.14 重大な変更が含まれています。 詳細については、「バージョン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 クラスに追加します。このメソッドを使用して、クライアントのメタデータをオンデマンドでサーバーに送信できます。

  • プライマリ読み取り参照を使用する場合のサーバー選択パフォーマンスが向上します。

PyMongo v 4.13リリースには、次の新機能が含まれています。

  • PyMongo Async API は通常利用可能です。PyMongoドライバーまたはMotorライブラリからPyMongo Async APIに移行する方法については、 「PyMongo Async への移行」ガイドを参照してください。

  • w="majority" を使用している場合に WriteConcern() が評価できないバグを修正しました。

このリリースで解決された問題の完全なリストを確認するには、Jira リリースノート を参照してください。

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() メソッドにインデックスヒントのサポートを追加します。

  • PrimaryPreferredSecondarySecondaryPreferredNearest の読み込み設定(read preference)の hedge パラメータを廃止します。PyMongo v5.0 では hedge のサポートが削除されます。

  • PyMongo Async ドライバーから PyOpenSSL サポートを削除します。

  • 3 未満の有効な SRV ホスト名を許可します。

警告

重大な変更

PyMongo v 4.11 重大な変更が含まれています。 詳細については、「バージョン4.11重大な変更 」を参照してください。

PyMongo v 4.11リリースには、次の新機能が含まれています。

  • Python v3.13+を実行中際にフリースレッド CPython のサポートを追加します。無料スレッドの詳細については、Pythonドキュメントを参照してください。

  • 使用中の暗号化には pymongocrypt v1.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 を発生させるバグを修正します。

PyMongo v 4.10リリースには、次の新機能が含まれています。

  • 新しいバイナリBSONサブタイプ(9 )の一時的なサポートを追加します。これは メソッドとbson.binary.Binary.from_vector() bson.binary.Binary.as_vector()メソッドを使用してベクトルの効率的なストレージと取得に使用できます。 BSONサブタイプ9 のサポートはベータであり、一般提供リリースより前に変更される可能性があります。

  • アプリケーションでC拡張機能が使用されている場合、 driver.nameクライアントメタデータフィールドに"c"を追加します。

  • AsyncMongoClientがデッドロックを発生させる可能性があるバグを修正します。

警告

重大な変更

PyMongo v 4.9 重大な変更が含まれています。 詳細については、「バージョン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であり、一般利用可能なリリースより前に変更される可能性があります。

警告

重大な変更

PyMongo v 4.8 重大な変更が含まれています。 詳細については、「バージョン4.8重大な変更 」を参照してください。

PyMongo v 4.8リリースには、次の新機能が含まれています。

  • リリース プロセスに安全なソフトウェア開発ライフ サイクル(SSDC)のオートメーションを実装しました。 Githubリリースには、PyPI でリリースされたディストリビューション ファイルに対応するソフトウェア アイテムの請求書(MBOM)と署名ファイルが含まれます。

  • bson.binary.Binaryタイプのオブジェクトでは、バイナリ サブタイプがSENSITIVE_SUBTYPE8 )の場合、 repr()メソッドは編集されます。

  • 変更ストリームで、 フィールドと フィールドの両方が再試行に追加でき、再試行が失敗するバグを修正しました。startAtOperationTimeresumeToken

  • Windows では、インポート時間を改善するために、 os.nameのハンドシェイク メタデータをWindowsに変更しました。

  • 特にドライバーが多くの操作を同時に実行している場合のMongoClient操作のパフォーマンスが向上しました。

  • pyopensslモジュールのインポートがAttributeErrorとともに失敗する場合に、stdlib sslモジュールへのフォールバックを追加しました。

警告

重大な変更

PyMongo v 4.7 重大な変更が含まれています。 詳細については、「バージョン4.7重大な変更 」を参照してください。

PyMongo v 4.7リリースには、次の新機能が含まれています。

  • クライアント側フィールド レベル暗号化(CSFLE)用の KMS(KMS)プロバイダーの名前サフィックスのサポートを追加しました。 この機能には pymongocrypt v1.9+ と libmongocrypt v1.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 shutdownstderrに書き込まれる可能性があります。

  • Int64 インスタンスが orjson ライブラリによって必ずしもエンコードされないバグを修正しました。次の例のようなコードが正しく実行されるようになりました。

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