문서 메뉴
문서 홈
/ / /
Ruby MongoDB Driver

릴리스 노트

이 페이지에서는 드라이버 릴리스의 중요한 변경 사항을 문서합니다.

이는 변경 사항의 완전한 목록이 아니며 일반적으로 버그 수정을 열거하지 않습니다. GitHub }의 릴리스 페이지를 참조하세요. 각 드라이버 버전의 보다 포괄적인 변경 사항 목록 및 Jira의 릴리스 페이지를 참조하세요. 드라이버 및 해당 테스트 제품군 내부의 변경 사항을 포함한 전체 변경 사항 목록을 확인하세요.

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

  • Ruby 2 를 지원합니다.5 및 2.6 는 중단되었습니다. Ruby 2 를 지원합니다.7 및 JRuby 9.2 는 더 이상 사용되지 않으며 다음 마이너 드라이버 버전에서 중단될 예정입니다. JRuby 9 를 지원합니다.4 이(가) 추가되었습니다.

  • 새로 출시된 Ruby-BSON 버전 5 을 지원합니다.0.

  • 연결 문자열에 더 이상 호스트와 옵션 사이에 슬래시가 필요하지 않습니다. 예를 들어 'mongodb://example.com?w=1" 및 'mongodb://example.com/?w=1"은 이제 모두 유효한 연결 문자열입니다.

  • 이제 클라이언트 환경에 대한 컨테이너 런타임 및 오케스트레이션 메타데이터가 분석 목적으로 서버로 전송됩니다.

  • 이제 호스트가 CosmosDB(Azure) 또는 DocumentDB(Amazon) 인스턴스로 감지되면 경고 메시지가 로그에 기록됩니다.

  • 샤드 토폴로지에서 읽기 또는 쓰기 작업을 재시도할 때 가능한 경우 다른 mongos 인스턴스에서 재시도가 시도됩니다.

이 Ruby 드라이버 릴리스는 MongoDB 버전 7.0을 지원합니다. 이제 Ruby 드라이버는 Ruby 3.2를 지원합니다. Ruby 2.5 및 2.6은 이제 더 이상 사용되지 않습니다.

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

  • 이제 드라이버는 연결 풀에서 동시에 설정하는 연결 수를 제한합니다. 기본적으로 제한은 2입니다. 제한은 Mongo::Client 생성자의 :max_connecting 옵션을 사용하여 구성할 수 있습니다. 대부분의 애플리케이션에는 기본값으로 충분합니다. 그러나 애플리케이션에서 많은 수의 스레드를 사용하는 경우 제한을 늘려야 할 수 있습니다.

  • 클라이언트 사이드 암호화에 Amazon Web Services KMS를 사용할 때 임시 자격 증명을 사용한 자동 Amazon Web Services 자격 증명 검색 및 인증에 대한 지원이 추가되었습니다.

  • 클라이언트 사이드 암호화에 Google Cloud 키 관리를 사용할 때 자동 GCP 자격 증명 검색에 대한 지원이 추가되었습니다.

  • 클라이언트 사이드 암호화에 Azure Key Vault를 사용하는 경우 자동 KMS 자격 증명에 대한 Azure VM 할당 managed ID 지원이 추가되었습니다.

  • Queryable Encryption 지원이 확장되었습니다.

  • Queryable Encryption 범위 인덱스에 대한 지원이 추가되었습니다.

  • 이제 crypt_shared 라이브러리를 mongocryptd 대신 사용할 수 있습니다.

  • 서비스 계정, 특히 EKS에 대한 Amazon Web Services IAM 역할에 대한 지원이 추가되었습니다.

  • 이제 가능한 경우 Amazon Web Services 자격 증명이 캐시됩니다.

  • Ruby 드라이버를 통한 Atlas 검색 인덱스 생성 및 관리에 대한 지원이 추가되었습니다.

이 Ruby 드라이버 릴리스는 MongoDB 버전 5.2 및 6.0을 지원합니다.

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

  • Queryable Encryption 에 대한 지원이 추가되었습니다.

  • 클라이언트 사이드 암호화를 위한 마스터 키 저장소로 사용할 수 있도록 Azure Key Vault, GCP 키 관리 및 KMIP를 준수하는 키 관리 시스템에 대한 지원이 추가되었습니다.

  • 이제 전체 스키마 맵 대신 스키마 맵 파일의 경로를 객체로 제공할 수 있습니다.

  • 이제 드라이버는 호환되지 않는 변경 사항 및 버그 수정에 대한 기능 플래그 메커니즘을 구현합니다. 2.18의 기능 플래그 뒤에 숨겨진 변경 사항은 보기 필터 및 옵션을 aggregate 에 전달하고 아래 설명된 대로 updatereplace 메서드의 올바른 사용 여부에 대한 유효성 검사입니다.

  • 작업 업데이트 및 교체를 위한 매개변수의 유효성을 검사하는 validate_update_replace 기능 플래그를 추가했습니다. 이 플래그가 켜져 있으면 잘못된 업데이트 또는 교체 문서에 오류가 발생합니다.

  • 보기 옵션을 aggregate, count, count_documents, distinctestimated_document_count 메서드에 올바르게 전파할 수 있도록 하는 broken_view_options 기능 플래그를 추가했습니다. 이 플래그를 켜면 해당 메서드에서 보기 옵션이 무시됩니다.

  • 이제 드라이버 에서 달러 접두사 및 점 키가 있는 문서를 삽입할 수 있습니다.

  • CRUD 메서드, 데이터베이스 나열 메서드, collection 및 인덱스 관리 메서드는 이제 새로운 옵션 :comment 을 지원합니다. 이 옵션을 사용하면 사용자가 임의의 주석을 지정하여 데이터베이스 프로파일러, currentOp 및 로그를 통해 작업을 추적할 수 있습니다.

  • 이제 estimated_document_count 메서드에서 $collStats 집계 파이프라인 단계 대신 count 서버 명령을 사용하여 뷰에서의 작업을 지원합니다. Stable API를 사용하는 애플리케이션은 서버 버전 5.0.8(MongoDB 5.0을 사용하는 경우) 또는 5.3.2 (MongoDB 5.1/5.2/5.3을 사용하는 경우)count 이상에서는 API strict가 활성화된 경우 명령을 사용하거나,api_strict: true Mongo::Client 서버 버전 5.0.0-5.0.7 및 5.1에서 인스턴스를 구성할 때 설정을 피해야 합니다. 0-5.3.1.

  • DBRef 클래스가 bson-ruby 로 이동되었습니다. BSON::DBRef Mongo::DBRef BSON::DBRef BSON::Document이전 버전과의 호환성을 위해 의 별칭은 입니다. 클래스는 Mongo::DBRef 에서 Object 파생된 레거시BSON::DBRef Mongo::DBRef$ref 달리$id 에서 $db 파생됩니다. , 및 만BSON::DBRef 허용하는 생성자에 전달된 모든 속성을 $ref 유지합니다. $id 또한 는 필요한 경우 필드를 재정렬하여 , 및 $db 를 MongoDB 서버의 요구 사항에 따라 순서대로 먼저 배치합니다.

  • BulkWrite::Result 클래스에 acknowledged? 속성이 추가되었습니다.

  • 대량 쓰기에 빈 작업 배열을 제공하면 이제 오류가 발생합니다.

  • BSON 직렬화 성능이 개선되었습니다.

  • ActiveJob 미들웨어 가 쿼리 캐시에 추가되었습니다.

  • :authorized_collections 옵션은 collection을 나열할 때 인식됩니다.

  • :wildcard_projection 허용된 인덱스 사양에 옵션이 추가되었습니다.

  • 드라이버가 연결할 mongos 라우터 수를 제한하기 위해 :srv_max_hosts/srvMaxHosts Ruby 및 URI 옵션을 추가했습니다.

  • 이제 사용자 지정 SRV 서비스 이름이 :srv_service_name Ruby 옵션 및 srvServiceName URI 옵션에서 지원됩니다.

  • 최대 연결 풀 크기가 0으로 지정되면 이제 MEAN 없음을 연결 풀로 해석됩니다.

  • 기본 최대 연결 풀 크기가 5에서 20으로 증가했습니다.

이번 릴리스에는 JRuby 9.3에 대한 지원이 추가되었습니다.

이 Ruby 드라이버 릴리스는 MongoDB 버전 5.1을 지원합니다. 또한 필요한 최소 Ruby 버전을 2.5로 늘리고 3.6 이전의 MongoDB 버전에 대한 지원을 중단합니다.

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

  • 세컨더리를 포함하여 트랜잭션 외부의 읽기 명령에 대한 새로운 readConcern 수준 '스냅샷'(비추적)이 추가되었습니다.

  • 세컨더리에서 $merge 및 $out 실행을 지원합니다.

  • 애그리게이션 및 CRUD 명령에 대한 'let' 옵션을 지원합니다.

다음 버그가 수정되었습니다:

  • 주소 확인이 실패하면 푸시 모니터 스레드가 종료될 수 있습니다.

다음과 같은 호환성이 손상되지 않는 변경이 적용되었습니다.

  • mapReduce 명령은 이제 더 이상 사용되지 않습니다.

  • 푸시 모니터에서 반복되는 타이트한 반복 피하기

이 릴리스에는 다음과 같은 새로운 기능이 추가되었습니다.

  • 로드 밸런서 지원.

다음과 같은 사항이 약간 개선되었습니다:

  • 인덱스가 이미 존재하는 경우 GridFS 파일 조회는 더 이상 인덱스 생성 권한이 필요하지 않으므로 읽기 권한만 있는 사용자가 사용할 수 있습니다.

이번 Ruby 드라이버 릴리스에서는 필요한 최소 Ruby 버전이 2.4로 증가하고 3.6 미만의 MongoDB 서버 버전에 대한 지원이 중단됩니다.

이번 릴리스에는 다음과 같은 새로운 기능이 추가되었습니다.

다음과 같은 작은 개선 사항이 있습니다:

  • 서버에서 제공하는 경우 OperationFailure 예외 메시지에 서버 오류 코드 이름이 포함됩니다. 오류 코드 이름을 수용하도록 메시지 레이아웃이 변경되었습니다.

  • TLS가 사용될 때 일반 SSL 메시징이 SocketError 메시지에서 제거되었습니다. Atlas는 TLS를 요구하며 MongoDB에 대한 TLS 연결은 이제 표준이 되었으며, TLS를 사용하도록 설정하지 않은 서버보다 인증서 확인 실패로 인해 연결이 실패할 가능성이 더 높습니다.

  • 애플리케이션이 TLS 연결에 사용되는 TLS 컨텍스트(예: 암호 제외)를 수정할 수 있도록 후크가 추가되었습니다.

  • 하트비트 성공 및 하트비트 실패 서버 모니터링 이벤트 가 이제 각 하트비트 시작 이벤트에 연결되어 유용성이 향상되었습니다.

  • skiplimit 옵션은 이제 서버 명령이 허용하지 않으므로 estimated_document_count 호출 시 금지됩니다.

  • 이제 드라이버는 민감한 명령에 응답할 때 명령 모니터링 응답 페이로드를 생략합니다.

  • 드라이버가 네트워크 소켓을 닫으면 이제 소켓 시간 초과가 적용됩니다.

  • estimated_document_count collection 메서드는 이제 5.0 이상 서버에서 카운트 명령 대신 $collStats 집계 파이프라인 단계를 사용합니다.

  • 이제 드라이버가 핸드셰이크 시 서버로 전송한 플랫폼 메타데이터에 연결 설정 목적이 포함되어 관리자가 모니터링 연결과 애플리케이션 연결을 구분할 수 있습니다.

  • 이제 드라이버는 타임아웃에 단조로운 시계를 사용합니다.

  • 드라이버는 더 이상 서버 응답의 writeErrors 필드에 있는 오류를 기반으로 서버를 알 수 없는 서버로 표시하지 않습니다.

  • mongocryptd 의 서버 선택 제한 시간이 10초로 증가했습니다.

이번 릴리스에는 다음과 같은 새로운 기능이 추가되었습니다.

  • 이제 Atlas Data Lake에 대한 쿼리가 지원됩니다.

  • 쿼리 캐시 가 Mongoid에서 드라이버로 이동되었습니다. Mongoid는 드라이버 2.14부터 드라이버의 쿼리 캐시를 사용합니다. 이동의 일환으로 쿼리 캐시의 몇 가지 문제가 수정되었고 그 기능이 집계 파이프라인 쿼리를 처리하고 모든 크기의 결과 집합을 지원하도록 확장되었습니다.

  • 이제 설명 시 설명 상세도를 지정할 수 있습니다.

  • 이제 대소문자 혼합 읽기 설정 (read preference) 태그 이름이 지원됩니다.

  • 드라이버는 TLS가 활성화되면 기본적으로 OCSP 엔드포인트 확인 을 수행합니다. Ruby의 openssl 확장이 지원되지 않기 때문에 OCSP 스테이플링은 아직 구현되지 않습니다.

다음과 같은 작은 개선 사항이 있습니다:

  • Client 객체에 대한 기본 로거 수준이 이제 정보입니다(디버그에서 상향). 이렇게 하면 기본적으로 드라이버에서 생성하는 로그 출력의 양이 줄어듭니다.

  • 데이터베이스 및 collection 쓰기 메서드는 개별 작업에 대한 쓰기 고려 (write concern) 지정을 지원합니다.

  • Client#summary 이제 메서드는 각 서버의 모니터링 상태를 표시합니다.

  • 해시 이외의 객체를 삽입하려고 하는 경우(허용되지 않음), 이제 드라이버는 더 나은 진단을 제공합니다.

  • 이제 SRV URI에 대한 DNS 쿼리는 구성된 소켓 시간 초과의 적용을 받습니다.

  • 이제 Client 객체가 다시 연결되면 세션 풀이 지워집니다.

Ruby 버전 2.3 및 2.4에 대한 지원은 이번 릴리스부터 더 이상 사용되지 않습니다.

이 릴리스에서는 MongoDB 4.4에 추가된 기능을 사용하는 데 필요한 클라이언트 사이드 기능을 구현합니다. 구체적으로 다음과 같은 새로운 드라이버 기능이 추가되었습니다.

  • 배포 토폴로지를 검색하거나 직접 연결을 강제하기 위해 일관된 크로스 드라이버 메커니즘을 제공하는 directConnection URI 옵션을 지원합니다.

  • MONGODB-AWS 인증 메커니즘을 지원합니다.

  • 4.4 이상 서버에서 SCRAM 인증을 사용하면 드라이버는 더 적은 네트워크 왕복으로 인증을 완료합니다.

  • 드라이버는 4.4 이상 서버에 대한 추가 모니터링 연결을 생성하여 상태가 변경될 때 서버가 드라이버에 알릴 수 있도록 합니다. 이렇게 하면 드라이버가 페일오버 이벤트 중에 새 프라이머리를 검색하는 시간이 줄어듭니다.

  • Client 생성자에 차단을 제공할 수 있으며, 이 경우 클라이언트 객체는 차단에 양보되고 차단이 종료되면 자동으로 닫힙니다.

  • start_session 이 경우 세션 객체는 차단에 양보되고 차단이 끝날 때 자동으로 종료됩니다.

  • 이제 개별 CRUD 작업에 대해 쓰기 옵션을 지정할 수 있습니다.

  • 작업을 찾기 위해 :allow_disk_use 옵션이 추가되었습니다.

  • list_databases 메서드에 :authorized_databases 옵션이 추가되었습니다.

  • 이제 list_collections 메서드가 모든 옵션을 통과합니다.

  • 인덱스를 생성할 때 인덱스 를 숨김 으로 설정하는 기능.

  • 인덱스 생성 시 쿼럼 커밋을 지정하는 기능.

  • :wrapping_libraries 클라이언트 옵션, 문제 해결/통계 애그리게이션 목적으로 서버에 버전을 보고하기 위해 드라이버를 래핑하는 Mongoid와 같은 라이브러리에서 사용합니다.

다음과 같은 작은 개선 사항이 있습니다:

  • count_documents 이제 인수 없이 호출할 수 있습니다.

  • 드라이버가 Microsoft Azure에서 끊긴 연결을 올바르게 감지할 수 있도록 기본 TCP 연결 유지 시간이 단축되었습니다.

  • CursorNotFound 이제 재개 가능한 변경 스트림 오류입니다.

  • 이제 백그라운드 스레드에서 처리하는 예외의 역추적 줄 수를 구성할 수 있습니다.

이번 릴리스에는 다음과 같은 새로운 기능이 추가되었습니다.

다음과 같은 작은 개선 사항이 있습니다:

  • 이제 인증 예외에 문제 해결에 도움이 되는 서버 정보가 포함됩니다.

이번 릴리스에는 다음과 같은 새로운 기능이 추가되었습니다.

  • 최소 연결 풀 크기가 지정된 경우, 각 서버의 풀은 지정된 최소 풀 크기까지 적극적으로 연결을 설정하기 위해 백그라운드 스레드를 생성합니다.

  • 드라이버가 SRV URI를 사용하여 배포에 연결하고 배포가 샤드 cluster인 경우 드라이버는 SRV DNS 레코드를 폴링하여 신규 및 제거된 mongos 서버를 자동으로 검색하고 그에 따라 알려진 서버 세트를 조정합니다.

다음과 같은 작은 개선 사항이 있습니다:

  • 이제 드라이버는 MongoDB URI의 사용자 이름과 비밀번호에 인코딩되지 않은 하위 구분 기호를 허용합니다.

  • 이제 사용자 관리 헬퍼가 쓰기 고려 (write concern) 옵션을 허용합니다.

  • 이제 드라이버와 함께 제공되는 명령 모니터링 로거가 각 명령에 사용되는 연결 ID를 기록합니다.

  • 레거시 읽기 재시도를 사용하는 경우 최신 재시도와 동일한 서버 오류 세트에서 재시도합니다.

  • distinct(nil) 호출은 MongoDB 4.4 이상 서버에서 거부되므로 금지됩니다.

이번 Ruby 드라이버 릴리스에서는 필요한 최소 Ruby 버전이 2.3으로, 지원되는 최소 JRuby 버전이 9.2로 증가했습니다.

이 릴리스에서는 MongoDB 4.2에 추가된 기능을 사용하는 데 필요한 클라이언트 사이드 기능을 구현합니다. 구체적으로 다음과 같은 새로운 드라이버 기능이 추가되었습니다.

  • 샤딩된 트랜잭션을 지원합니다.

  • 애플리케이션은 commit_transaction 메서드에서 :max_time_ms 옵션을 설정할 수 있습니다.

  • 데이터베이스 수준 애그리게이션을 지원합니다.

  • $merge 집계 파이프라인 단계를 지원합니다.

  • 이제 업데이트 작업은 집계 파이프라인을 배열로 허용합니다.

  • 이제 가능한 경우 TLS 재협상이 비활성화됩니다.

  • change stream은 이제 서버에서 제공하는 배치 후 재개 토큰을 처리합니다.

다음과 같은 작은 개선 사항이 있습니다:

  • 이전에 :write 옵션을 허용했던 메서드를 포함하여 이제 모든 메서드에서 쓰기 고려 (write concern)에 대한 :write_concern 옵션을 허용합니다.

  • 이제 MongoDB URI의 쿼리 문자열이 & 으로 시작할 수 있습니다.

Ruby 2.3 미만 버전에 대한 지원은 이번 릴리스에서 더 이상 사용되지 않습니다.

이번 릴리스에는 다음과 같은 새로운 기능이 추가되었습니다.

  • CMAP 사양을 준수하는 향상된 모니터링으로 연결 풀 코드를 다시 작성합니다.

  • 기본적으로 활성화되어 있는 드라이버 간 재시도 가능 읽기 사양을 준수하는 최신 재시도 가능 읽기 구현입니다.

  • 이제 최신 재시도 가능 쓰기가 기본적으로 활성화됩니다.

  • 레거시 재시도 가능 쓰기는 대부분의 경우 비활성화할 수 있습니다.

  • 이제 드라이버는 TLS 연결을 위한 클라이언트 인증서로 제공되는 인증서 체인을 지원합니다.

  • Client 을(를) 만들 때 여러 CA 인증서를 지정할 수 있는 기능.

  • URI 옵션을 통해 비공개 키와 인증서를 전달할 수 있습니다.

다음과 같은 작은 개선 사항이 있습니다:

  • $changeStream 집계 파이프라인 단계에서 startAfter 옵션을 지원합니다.

  • 더 나은 로깅을 위해 서버로 전송되는 BSON 문서의 필드 순서가 변경되었습니다.

  • 이제 이스케이프되지 않은 슬래시가 있는 인증서 경로를 MongoDB URI에 지정할 수 있습니다.

이 릴리스에서는 Ruby 2.3 미만 버전에 대한 지원이 중단되었습니다.

← 데이터 정렬.