AI 에이전트의 경우: 문서 인덱스는 https://www.mongodb.com/ko-kr/docs/llms.txt에서 사용할 수 있으며, 모든 페이지의 마크다운 버전은 어떤 URL 경로에 .md를 추가하여 사용할 수 있습니다.

릴리스 노트

다음 버전의 새로운 기능에 대해 알아보세요:

경고

호환성이 손상되는 변경

PyMongo v4.19 호환성이 손상되는 변경이 포함되어 있습니다. 자세한 내용은 버전 4.19 주요 변경 사항을 참조하세요.

PyMongo v4.19 릴리스에는 다음과 같은 새로운 기능이 포함되어 있습니다.

  • Python v3.15에 대한 지원이 추가되었습니다.

  • Python v3.14 이상에서 concurrent.futures.InterpreterPoolExecutor 클래스를 포함하여 하위 인터프리터에서 동기 및 비동기 클라이언트를 실행할 수 있는 지원을 추가합니다. 하위 인터프리터에서 드라이버는 인터프리터가 종료될 때 동기 클라이언트의 모니터 스레드를 중지하고 조인합니다.

  • 클라이언트 사이드 필드 레벨 암호화 및 Queryable Encryption을 위한 KMS(Key Management Service) 요청을 HTTP proxy를 통해 라우팅할 수 있는 기능을 추가합니다. 이러한 요청을 라우팅하려면 AutoEncryptionOpts, ClientEncryption, AsyncClientEncryption 클래스에서 kms_connect_callback 옵션을 사용하거나 HTTPProxyKMSConnect 또는 AsyncHTTPProxyKMSConnect 헬퍼를 전달하세요.

  • MongoClient 및 AsyncMongoClient 클래스에 srv_host_validator 키워드 인수를 추가합니다. 이는 허용 가능한 SRV 호스팅하다을 단일 접미사로 표현할 수 없는 배포서버에 대한 srvAllowedHostsSuffix string 옵션의 대안입니다. 콜백은 반환된 각 호스팅하다에 대해 한 번 실행되며 불리언을 반환해야 합니다. 이 옵션은 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.3 CVE-2026-106435.에 대한 수정 사항이 포함되어 있습니다.

MongoDB 보안 업데이트에 대한 최신 정보는 MongoDB 보안 게시판을 참조하세요.

이 릴리스에 대해 자세히 알아보려면 Github에서 v4.18.3 릴리스 노트를 참조하세요.

중요

PyMongo v4.18.2 다음 보안 문제에 대한 수정 사항이 포함되어 있습니다.

MongoDB 보안 업데이트에 대한 최신 정보는 MongoDB 보안 게시판을 참조하세요.

이 릴리스에 대해 자세히 알아보려면 Github에서 v4.18.2 릴리스 노트를 참조하세요.

중요

PyMongo v4.18.1 CVE-2026-88029.에 대한 수정 사항이 포함되어 있습니다.

MongoDB 보안 업데이트에 대한 최신 정보는 MongoDB 보안 게시판을 참조하세요.

이 릴리스에 대해 자세히 알아보려면 Github에서 v4.18.1 릴리스 노트를 참조하세요.

경고

호환성이 손상되는 변경

PyMongo v4.18 호환성이 손상되는 변경이 포함되어 있습니다. 자세한 내용은 버전 4.18 주요 변경 사항을 참조하세요.

PyMongo v4.18 릴리스에는 다음과 같은 새로운 기능이 포함되어 있습니다.

  • MongoDB Server v9.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 릴리스는 이 두 개의 매개변수 이름 중 하나만 허용합니다. 드라이버는 pymongocrypt v1.19 이상에서 text_opts을(를) 전달하거나 pymongocrypt v1에서 string_opts을(를) 전달하는 경우 ConfigurationError를 발생시킵니다.16 v1.18 버전까지, 또는 두 이름 모두 한 번에.

  • TLS 연결 성능을 향상시킵니다. 동일한 서버에 대한 연결에서 TLS 세션을 재사용하여 새로운 연결마다 완전한 핸드쉐이크를 피할 수 있습니다. 동기 클라이언트는 모든 Python 버전에서 세션 재개를 지원하고, 비동기 클라이언트는 Python v3.11 이상에서 지원합니다.

  • 재시도가 서버 상태를 악화시키지 않을 것으로 예상되는 경우에만 과부하 오류를 재시도하여 지능형 워크로드 관리의 성능을 향상시킵니다.

  • mongos v7.1 이상에 대한 소모 커서 (CursorType.EXHAUST) 지원 추가.

  • 큰 문서를 bson.raw_bson.RawBSONDocument 객체로 디코딩할 때 성능 및 메모리 사용량을 향상시킵니다. 또한 C 확장이 사용 가능한 경우 RawBSONDocument 객체를 지연 디코딩할 때 성능을 향상시킵니다.

  • MongoClient 및 AsyncMongoClient 객체의 string 표현에서 AWS 세션 토큰 등 자맘적으로 민감한 인증 메커니즘 속성을 삭제합니다.

  • 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 v4.17 릴리스에는 다음과 같은 새로운 기능이 포함되어 있습니다.

  • ClientSession.bind() 및 AsyncClientSession.bind() 컨텍스트 관리자를 추가하여 각 작업에 세션을 전달하는 대신 차단 내의 모든 데이터베이스 작업에 세션을 바인딩할 수 있습니다. bind() 메서드에 대해 자세히 학습하려면 트랜잭션 가이드를 참조하세요.

  • 수신 연결 속도 제한 기능에 대한 지원 추가합니다. max_adaptive_retries 및 enable_overload_retargeting 옵션을 사용하여 오버로드된 서버에 연결할 때 동작을 개선할 수 있습니다. 이러한 옵션에 대해 자세히 학습하려면 CRUD 작업 구성 가이드의 오버로드 재시도 옵션 을 참조하세요.

  • 다음 bson.son.SON 메서드를 더 이상 사용하지 않습니다.

    • has_key(): 대신 in 연산자 사용합니다.

    • iterkeys(): 대신 dict.keys() 를 사용합니다.

    • itervalues(): 대신 dict.values() 를 사용합니다.

PyMongo v4.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 v4.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 v4.14 호환성이 손상되는 변경이 포함되어 있습니다. 자세한 내용은 버전 4.14 주요 변경 사항을 참조하세요.

PyMongo v4.14 릴리스에는 다음과 같은 새로운 기능이 포함되어 있습니다.

  • 무료 스레딩 기능을 포함하여 Python 3.14에 대한 예비 지원 추가합니다. 운전자 아직 Python 3.14에서 다음 기능을 지원 하지 않습니다.

    • 하위 인터프리터(concurrent.interpreters)

    • 암호화 사용한 프리 스레딩

    • mod_wsgi

  • Python 3.13의 프리 스레딩에 대한 실험적 지원 제거합니다.

  • bson.codec_options.TypeRegistry 클래스에 다음 속성을 추가합니다.

    • .codecs: TypeRegistry 객체의 유형별 코덱에 대한 액세스 제공합니다.

    • .fallback_encoder: TypeRegistry 객체의 폴백 인코더에 대한 액세스 제공합니다.

  • MongoClient 및 AsyncMongoClient 클래스에 append_metadata() 메서드를 추가합니다. 이 메서드를 사용하여 온디맨드 방식으로 클라이언트 메타데이터 서버 로 보낼 수 있습니다.

  • 프라이머리 읽기 참조를 사용할 때 서버 선택 성능을 개선합니다.

PyMongo v4.13 릴리스에는 다음과 같은 새로운 기능이 포함되어 있습니다.

  • PyMongo 비동기 API 일반적으로 사용할 수 있습니다. PyMongo 운전자 또는 모터 라이브러리에서 PyMongo 비동기 API 로 마이그레이션 방법을 학습하려면 PyMongo 비동기로 마이그레이션 가이드를 참조하세요.

  • w="majority"을 사용할 때 WriteConcern() 를 평가할 수 없는 버그를 수정합니다.

이 출시하다 에서 해결된 문제의 전체 목록을 보려면 Jira 출시하다 노트를 참조하세요.

PyMongo v4.12 릴리스에는 다음과 같은 새로운 기능이 포함되어 있습니다.

  • AutoEncryptionOpts에 key_expiration_ms 인수를 사용하여 DEK 캐시 수명 구성에 대한 지원 추가합니다.

  • MongoDB Server 8.1 이상의 CSFLE 및 QE에서 $lookup 에 대한 지원 추가합니다.

  • 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 읽기 설정에 대한 hedge 매개변수를 더 이상 사용하지 않습니다. hedge 에 대한 지원은 PyMongo v5.0에서 제거됩니다.

  • PyMongo 비동기 운전자 에서 PyOpenSSL 지원 제거합니다.

  • 3 개 미만의 부분으로 구성된 유효한 SRV 호스트 이름을 허용합니다.

경고

호환성이 손상되는 변경

PyMongo v4.11 호환성이 손상되는 변경이 포함되어 있습니다. 자세한 내용은 버전 4.11 주요 변경 사항을 참조하세요.

PyMongo v4.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()

  • ordered 또는 verboseResults 옵션이 True로 설정하다 상태에서 승인되지 않은 쓰기와 함께 MongoClient.bulkWrite() 및 AsyncMongoClient.bulk_write() 메서드를 사용하면 오류 오류가 발생합니다.

  • 레거시 MongoDB 확장 JSON 날짜/시간 표현을 사용할 때 DatetimeMS 가 '{"$date": X}' 대신 '{"$date": "X"}' 로 잘못 인코딩되는 버그를 수정합니다.

  • 잘못된 $date 값을 구문 분석할 때 bson.json_util.loads() 메서드가 ValueError 대신 IndexError 를 발생시키는 버그를 수정합니다.

PyMongo v4.10 릴리스에는 다음과 같은 새로운 기능이 포함되어 있습니다.

  • bson.binary.Binary.from_vector() 및 bson.binary.Binary.as_vector() 메서드를 사용하여 벡터 의 효율적인 저장 및 검색에 사용할 수 있는 새로운 바이너리 BSON 하위 유형(9)에 대한 잠정 지원 을 추가합니다. BSON 하위 유형 9 에 대한 지원은 beta 이며 일반적으로 사용 가능한 출시하다 전에 변경될 수 있습니다.

  • 애플리케이션 이 C 확장을 사용할 때 driver.name 클라이언트 메타데이터 필드 에 "c" 를 추가합니다.

  • AsyncMongoClient 의 교착 상태를 유발할 수 있는 버그를 수정합니다.

경고

호환성이 손상되는 변경

PyMongo v4.9 호환성이 손상되는 변경이 포함되어 있습니다. 자세한 내용은 버전 4.9 주요 변경 사항을 참조하세요.

PyMongo v4.9 릴리스에는 다음과 같은 새로운 기능이 포함되어 있습니다.

  • MongoDB Server 8.0 및 Python 3.13 에 대한 지원 을 추가합니다.

  • Queryable Encryption 범위 쿼리에 대한 지원 을 추가합니다. 이 기능 을 사용하려면 앱 이 MongoDB Server 8.0 이상에 연결되어야 합니다. Queryable Encryption 에 대한 자세한 내용은 MongoDB Server 매뉴얼의 Queryable Encryption 을 참조하세요.

  • 를 대체할 새로운 실험적 비동기 API Motor 를 추가합니다. 이 API 는 beta 이며 정식 버전이 출시하다 되기 전에 변경될 수 있습니다.

경고

호환성이 손상되는 변경

PyMongo v4.8 호환성이 손상되는 변경이 포함되어 있습니다. 자세한 내용은 버전 4.8 주요 변경 사항을 참조하세요.

PyMongo v4.8 릴리스에는 다음과 같은 새로운 기능이 포함되어 있습니다.

  • 출시하다 프로세스 에서 보안 소프트웨어 개발 라이프사이클(SSDLC) 자동화 를 구현했습니다. Github 릴리스에는 PyPI에서 릴리스된 배포 파일에 해당하는 소프트웨어 BOM(Bill of Material)과 서명 파일이 포함됩니다.

  • bson.binary.Binary 유형의 객체에서 이진 하위 유형이 SENSITIVE_SUBTYPE (8)인 경우 repr() 메서드가 수정됩니다.

  • 변경 스트림에서 startAtOperationTime 및 resumeToken 필드가 모두 재시도 시도에 추가되어 재시도가 실패하는 버그가 수정되었습니다.

  • Windows 에서 가져오기 시간을 개선하기 위해 os.name 에 대한 핸드셰이크 메타데이터 를 Windows 로 변경했습니다.

  • 특히 운전자 가 많은 작업을 동시에 실행 때 MongoClient 작업의 성능이 향상되었습니다.

  • pyopenssl 모듈 가져오기가 AttributeError 와 함께 실패할 경우 stdlib ssl 모듈에 폴백을 추가했습니다.

경고

호환성이 손상되는 변경

PyMongo v4.7 호환성이 손상되는 변경이 포함되어 있습니다. 자세한 내용은 버전 4.7 주요 변경 사항을 참조하세요.

PyMongo v4.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)