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

リリースノート

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

警告

重大な変更

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

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

  • Python v3.15のサポートを追加します。

  • Python v3.14以降のconcurrent.futures.InterpreterPoolExecutorクラス内を含め、サブインタープリターで同期および非同期クライアントを実行するためのサポートを追加しました。サブインタープリターでは、インタープリターが破棄されると、ドライバーは同期クライアントのモニター・スレッドを停止して結合します。

  • クライアント側のフィールドレベル暗号化およびQueryable EncryptionのためのKMS(Key Management Service)リクエストをHTTP proxy経由でルーティングするサポートを追加しました。これらのリクエストをルーティングするには、kms_connect_callback、AutoEncryptionOpts、ClientEncryption、およびAsyncClientEncryptionクラスでHTTPProxyKMSConnectオプションを使用するか、AsyncHTTPProxyKMSConnectまたはヘルパーを渡します。

  • srv_host_validator キーワード引数を MongoClient クラスと AsyncMongoClient クラスに追加します。これは、SRV をホストするものを単一のサフィックスとして表現できない配置に対して、srvAllowedHostsSuffix string オプションの代わりに使用できます。コールバックは、返されたホストごとに 1 回実行され、ブール値を返す必要があります。このオプションは srvAllowedHostsSuffix とは排他関係にあります。

  • srvAllowedHostsSuffix を、localhost、test、internal などのプライベートまたは特別な用途のために予約された単一のラベルにすることができます。

  • gevent環境下で、接続をプールに戻す際にgreenletが強制終了されると、同期クライアントが永久にデッドロックする可能性があるバグを修正しました。

  • ハンドシェイクのメタデータのバグを修正しました。MongoClient.append_metadata() と AsyncMongoClient.append_metadata() は、重複を検出した際に DriverInfo オブジェクト全体を比較するようになり、driver.name フィールドと driver.version フィールドは一致するインデックス位置を使用するようになりました。

  • SRVポーリングのバグを修正しました。返されたホストのいずれかが無効な場合に、ドライバーがトポロジーを更新しないという問題がありました。

  • C拡張機能のBSONデコーダーが、要素データがドキュメントの終端と重なっているドキュメントを、InvalidBSONを発生させる代わりに受け入れてしまうバグを修正しました。

  • decode_all() が InvalidBSON を発生させる代わりに、部分的なドキュメントで終わるバッファを受け入れていたバグを修正しました。これで C 拡張機能と一致するようになりました。

このリリースの詳細については、 Githubの v4.19 リリースノート を参照してください。

重要

PyMongo v4.18.3CVE-2026-106435の修正が含まれています。

MongoDBセキュリティ更新の最新情報については、MongoDBセキュリティ更新を参照してください。

このリリースの詳細については、 Githubの v4.18.3 リリースノート を参照してください。

重要

PyMongo v4.18.2以下のセキュリティ問題の修正が含まれています。

MongoDBセキュリティ更新の最新情報については、MongoDBセキュリティ更新を参照してください。

このリリースの詳細については、 Githubの v4.18.2 リリースノート を参照してください。

重要

PyMongo v4.18.1CVE-2026-88029の修正が含まれています。

MongoDBセキュリティ更新の最新情報については、MongoDBセキュリティ更新を参照してください。

このリリースの詳細については、 Githubの v4.18.1 リリースノート を参照してください。

警告

重大な変更

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

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

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

  • srvAllowedHostsSuffix 接続オプションを追加します。これは、URI オプションとして、または MongoClient または AsyncMongoClient キーワード引数として設定できます。mongodb+srv:// 接続文字列を使用して接続する場合、このオプションは、SRV レコードによって返されるホストがシードホスト名と同じ親ドメインを持つ必要があるというデフォルトの要件をオーバーライドします。サフィックスは、Public Suffix List に記載されているパブリックサフィックスにすることはできません。

  • MongoDB Server v9.0 以降に対して、Queryable Encryption のプレフィックス、サフィックス、およびサブストリング クエリの一般提供のサポートが追加されました。これらのクエリには、libmongocrypt v1.20.0 以降が必要です。このリリースでは、以下の関連する変更が実施されます。

    • Algorithm.STRING 値と StringOpts クラスを追加します。これらは Algorithm.TEXTPREVIEW および TextOpts を置き換えます。置き換えられた値は非推奨です。

    • QueryType.PREFIX、QueryType.SUFFIX、QueryType.SUBSTRINGのクエリタイプを追加します。対応する PREFIXPREVIEW、SUFFIXPREVIEW、SUBSTRINGPREVIEW クエリタイプは、v9.0 以前の MongoDB Server バージョンでは引き続き試験的な使用が可能です。

    • ClientEncryption.encrypt() メソッドと AsyncClientEncryption.encrypt() メソッドに string_opts パラメータを追加し、text_opts パラメータを非推奨とします。pymongocrypt リリースでは、これら 2 つのパラメータ名のいずれか 1 つのみを受け入れます。ドライバーは、pymongocrypt v1.19 以降のでtext_optsを渡す場合、pymongocrypt v1のでstring_optsを渡す場合にConfigurationErrorを発生させます。16v1.18 まで、または両方の名前を一度に入力します。

  • 同じサーバーへの接続間でTLSセッションを再利用することにより、新しい接続ごとにおけるフルハンドシェイクを回避し、TLS接続パフォーマンスを向上させます。同期クライアントは、すべての Python バージョンでセッション再開に対応しています。また、非同期クライアントは Python v3.11 以降でそれに対応しています。

  • 再試行によってサーバーの状態が悪化することが予想されない場合に限り、オーバーロードエラーを再試行することで、Intelligent ワークロード マネジメント のパフォーマンスを向上させます。

  • mongos v7.1 以降に対するエキゾース カーソル (CursorType.EXHAUST) のサポートを追加します。

  • 大容量のドキュメントを bson.raw_bson.RawBSONDocument オブジェクトへデコードする際のパフォーマンスとメモリ使用量を向上させます。また、C 拡張機能が利用可能な場合の RawBSONDocument オブジェクトをレイジーデコードする際のパフォーマンスを向上させます。

  • 機密性が高い可能性のある認証メカニズムのプロパティ (たとえば AWS セッション トークン) を、MongoClient および AsyncMongoClient オブジェクトの string 表現から削除します。

  • OP_COMPRESSED メッセージの圧縮解後のサイズを max_message_size に対して検証することで、悪意を持って作成された圧縮されたサーバーの応答によるメモリ消耗を防止します。

  • BSON ドキュメントの配列をデコードする際に、C 拡張機能で発生する可能性のある範囲外読み取りを修正します。埋め込みドキュメントが長さを宣言し、それが配列に残っているバイト数を超えている場合、ドライバーは bson.errors.InvalidBSON エラーを発生させるようになりました。

  • bson.json_util.loads() メソッドを修正し、t および i 以外のフィールドを含む $timestamp 値を拒否するようにしました。

  • Windows 上で、および PyOpenSSL を使用する場合の macOS 上で、SSL_CERT_FILE および SSL_CERT_DIR 環境変数が、オペレーティング システムまたは certifi 証明書ストアを置き換えるのではなく、統合されていましたバグを修正します。

  • PyPy サポートの非推奨化。サポートは今後のリリースで削除されます。

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

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() を使用してください。

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

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

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

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

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

  • PrimaryPreferred、Secondary、SecondaryPreferred、Nearest の読み込み設定(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 のサポートはbeta段階であり、一般提供リリースより前に変更される可能性があります。

  • アプリケーションで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_SUBTYPE ( 8 )の場合、 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 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)