Docs Menu
Docs Home
/
MongoDB 매뉴얼
/

MongoDB 8.0릴리스 노트

이 페이지의 내용

  • 패치 릴리스
  • 플랫폼 지원 업데이트
  • 로깅
  • 집계
  • 보안
  • 샤딩
  • 복제
  • 업그레이드된 TCMalloc
  • 일반 변경 사항
  • 알려진 문제
  • 업그레이드 절차
  • 다운로드

이 페이지에서는 MongoDB 8.0 에 도입된 변경 사항과 새로운 기능에 대해 설명합니다.

MongoDB 8.0 은 메이저 릴리스이므로 MongoDB Atlas 와 온프레미스 배포 모두에서 지원됩니다. MongoDB 8.0 에는 MongoDB Rapid Release 7.1, 7.2 및 7.3 에 도입된 변경 사항이 포함되어 있습니다. 이 페이지에서는 해당 Rapid Release 및 MongoDB 8 에 도입된 변경 사항에 대해 설명합니다.0.

Major 릴리스와 Rapid Release의 차이점에 학습 보려면 MongoDB 버전 관리를 참조하세요.

중요

null 바이트의 부적절한 중화로 인해 MongoDB Server 에서 버퍼 오버 읽기가 발생할 수 있습니다.

8.0.3 이전의 MongoDB 8.0 에서는 권한이 있는 사용자가 MongoDB Server 에서 잘못된 트리거하다 을 구성하는 특수하게 조작된 요청을 발행하여 충돌을 BSON 서버 메모리의 버퍼 오버 읽기 내용을 수신할 수 있습니다.

이 문제는 MongoDB Server 버전에 영향을 미칩니다.

  • 5.0.0 - 5.0.29

  • 6.0.0 - 6.0.18

  • 7.0.0 - 7.0.14

  • 8.0.0 - 8.0.2

수정된 문제:

  • 서버-96419 null 바이트의 부적절한 중화로 인해 MongoDB Server 에서 버퍼 오버 읽기가 발생할 수 있습니다.

  • 8.0.3에서 모든 JIRA 문제가 종료됨

  • 8.0.3 변경 로그

수정된 문제:

이 페이지의 나머지 부분에서는 MongoDB 8.0 에 도입된 변경 사항과 새로운 기능에 대해 설명합니다.

MongoDB 8.0 부터 새로운 MongoDB Server 버전(메이저 및 마이너)은 OS 벤더 에서 정의한 최소 운영 체제(OS) 마이너 버전을 지원 합니다. OS 벤더 에서 OS 마이너 버전을 더 이상 지원하지 않는 경우, MongoDB 는 다음 OS 마이너 버전을 지원 하도록 MongoDB Server 를 업데이트합니다. 자세한 내용은 MongoDB 플랫폼 지원 개선 사항을 참조하세요.

MongoDB 8.0 은 다음과 같은 최소 OS 마이너 버전을 지원합니다.

  • Red Hat Enterprise Linux 8.8

  • Red Hat Enterprise Linux 9.3

  • SUSE Linux 엔터프라이즈 서버 15 SP5

  • Amazon Linux 2023 버전 2023.3

MongoDB 8.0 부터는 작업의 총 지연 시간 이 아닌 MongoDB 가 해당 작업에 소요한 시간을 기준으로 느린 작업을 로그 하도록 데이터베이스 프로파일러를 구성할 수 있습니다. 즉, 잠금 및 흐름 제어 대기와 같은 요인은 작업이 느린 작업 임계값을 초과하는지 여부에 영향을 주지 않습니다.

이 변경 사항은 로깅 및 쿼리 분석에 대해 다음과 같은 개선 사항을 제공합니다.

  • 느린 쿼리는 MongoDB 가 쿼리 를 처리 하는 데 소요된 시간을 기준으로 더 정확하게 기록됩니다.

  • Query 쿼리 프로파일러, Performance Advisor, Search Query Telemetry와 같은 쿼리 분석 도구는 대신 을(를)workingMillis 기반으로 느린 작업을 durationMillis 보고합니다. 이 변경 사항을 통해 문제가 있는 쿼리를 더 정확하게 볼 수 있습니다.

  • 느린 쿼리 로그 에는 실행 티켓에 대기 중인 시간에 대한 지표인 queues.execution.totalTimeQueuedMicros 가 포함되어 있습니다. 이 지표는 작업이 완료되는 데 걸리는 시간으로 인해 느린지, 아니면 시작을 기다리는 데 소요되는 시간으로 인해 느린지 식별하는 데 도움이 됩니다.

자세한 내용은 db.setProfilingLevel()를 참조하세요.

데이터베이스 프로파일러 에 대한 필터하다 를 지정하면 새로운 workingMillis 지표를 기반으로 작업을 로그 할 수 있습니다. workingMillisdurationMillis 를 모두 기반으로 작업을 로그 하고 각 지표를 다른 임계값으로 설정하다 수 있습니다.

MongoDB 8.0 부터는 $convert 연산자 를 사용하여 다음 변환을 수행할 수 있습니다.

  • String values to binData values

  • binData 값을 string 값으로

MongoDB 8.0 $toUUID에는 문자열을 UUID 값으로 변환하기 위한 간소화된 구문을 제공하는 새로운 헬퍼 표현식 도 포함되어 있습니다.

MongoDB 7.1 부터 $queryStats 단계는 기록된 쿼리에 대한 통계를 반환합니다.

MongoDB 8.0 부터 $queryStats 는 변경 스트림에 대한 추적 및 보고 지표 를 개선합니다. 자세한 내용은 $queryStats Change Streams 동작을 참조하세요.

MongoDB 8.0 부터 null$denseRank$rank sortBy 작업에서 누락된 필드 값은 순위를 계산할 때 동일하게 처리됩니다. 이 변경 사항은 denseRankrank 의 동작을$sort 와 일관적인 .

MongoDB 8.0 부터 시작됩니다. Queryable Encryption$lt, $lte, $gt$gte 연산자를 사용하여 암호화됨 필드에 대한 범위 쿼리를 지원합니다. 자세한 내용 은 Queryable Encryption 에 대해 지원되는 작업을 참조하세요. 암호화됨 필드에 대한 범위 쿼리를 활성화 하려면 암호화 스키마 생성을 참조하세요.

MongoDB 8.0 부터는 감사 로그 메시지에 OCSF 스키마 를 지정할 수 있습니다. OCSF 스키마 는 로그 프로세서와 호환되는 표준화된 형식으로 로그를 제공합니다.

로그 메시지에 사용되는 스키마 를 설정하다 하려면 auditLog.schema 구성 파일 옵션을 사용합니다.

OCSF 형식의 로그 메시지 예시 는 OCSF 스키마 감사 메시지를 참조하세요.

MongoDB 8.0 은 수신 허용 제어를 위한 새로운 대기열을 도입합니다. 네트워크에서 데이터베이스 로 들어가기를 기다리는 작업은 수신 대기열에 들어갑니다. 기본값 대기열은 제한이 없으므로 MongoDB 는 대기열 없이 이 단계를 통해 모든 작업을 실행할 수 있습니다. 대기열 최대값을 특정 값으로 설정하면 현재 작업 수가 지정된 제한에 도달한 경우 이 단계에서 작업을 대기열에 추가할 수 있습니다.

MongoDB 8.0부터는 샤딩된 클러스터의 샤드 간에 컬렉션을 샤딩 해제하고 샤딩되지 않은 컬렉션을 이동할 수 있습니다.

MongoDB 8.0 부터는 moveCollection 명령을 사용하여 샤딩되지 않은 컬렉션 을 다른 샤드 로 이동할 수 있습니다.

자세한 내용은 이동 가능한 컬렉션 을 참조하세요. 시작하려면 컬렉션 이동을 참조하세요.

MongoDB 부터 8.0 는movePrimary 변경 스트림 이 있는 컬렉션을 무효화 하지 않습니다. 컬렉션이 새 샤드 로 이동한 후에도 변경 스트림은 컬렉션에서 이벤트를 계속 읽을 수 있습니다.

자세한 내용 은 Change Streams 이 있는 컬렉션 이동하기를 참조하세요.

MongoDB 8.0 부터는 unshardCollection 명령 또는 sh.unshardCollection() 메서드를 사용하여 기존 샤딩된 컬렉션을 샤딩 해제할 수 있습니다. 이 작업은 컬렉션 의 모든 문서를 지정된 샤드 또는 데이터 양이 가장 적은 샤드 로 이동합니다.

자세한 내용은 샤딩되지 않은 컬렉션 을 참조하세요. To get started, see Unshard a Collection.

MongoDB 8.0 부터는 일반적인 샤딩된 클러스터 메타데이터 외에 애플리케이션 데이터를 저장 하도록 config 서버 를 구성할 수 있습니다. config 서버 와 샤드 서버 기능을 모두 제공하는 mongod 노드 를 config 샤드 라고 합니다. 샤드 서버 기능 없이 독립형 --configsvr 로 실행되는 mongod 노드 를 전용 config 서버 라고 합니다.

전용 config 서버 를 config 샤드 로 실행 하도록 구성하려면 transitionFromDedicatedConfigServer 명령을 실행 합니다.

전용 config 서버 로 실행 config 샤드 를 구성하려면 transitionToDedicatedConfigServer 명령을 실행 합니다.

자세한 내용은 구성 샤드를 참조하세요. 시작하려면 구성 샤드로 샤드 클러스터 시작하기를 참조하세요. 복제본 세트 를 구성 샤드 가 있는 샤드 샤딩된 클러스터 로 변환하려면 복제본 세트를 내장된 구성 서버가 있는 샤드 클러스터로 변환을 참조하세요.

MongoDB 8.0 부터 serverStatus 의 출력에 다음과 같은 새로운 shardingStatistics 필드가 포함됩니다.

MongoDB 7.1 에는 청크 마이그레이션에 대한 다음과 같은 새로운 샤딩 통계가 포함되어 있습니다.

MongoDB 7.2부터 해시 샤드 키로 collection 을 샤딩하면 작업은 기본적으로 샤드당 하나의 청크를 생성합니다. 이전에는 이 작업이 기본적으로 두 개의 청크를 생성했습니다.

MongoDB 8.0 부터는 directShardOperations 역할 을 사용하여 샤드 에 대해 직접 명령을 실행해야 하는 유지 관리 작업을 수행할 수 있습니다.

경고

directShardOperations 역할 을 사용하여 명령을 실행하면 클러스터 가 올바르게 작동하지 않고 데이터가 손상될 수 있습니다. directShardOperations 역할 은 유지 관리 목적으로만 사용하거나 MongoDB 지원 의 지침 에 따라 사용하세요. 유지 관리 작업 수행이 완료되면 directShardOperations 역할 사용을 중지합니다.

MongoDB 7.1 부터 mongos 는 클라이언트의 getMore 요청 이 exhaustAllowed 플래그를 설정할 때 배출 커서를 지원합니다. 이렇게 하면 클라이언트 가 단일 요청 에 대해 데이터베이스 서버 로부터 여러 개의 응답을 받을 때 샤딩된 클러스터의 쿼리 성능이 향상될 수 있습니다.

MongoDB 7.1 부터 mongos 는 [0, 65535]의 --port 값을 허용합니다. 자세한 내용은 --port 를 참조하세요.

MongoDB 7.1 부터 findAndModifydeleteOne() 는 부분 샤드 키를 사용하여 샤드 컬렉션을 쿼리할 수 있습니다.

MongoDB 7.2는 reshard collection 작업의 성능을 크게 개선하여 작업 실행 시간을 크게 단축했습니다.

또한 애플리케이션과 cluster가 필요한 요구 사항제한 사항을 충족하는 경우 reshardCollection 명령을 사용하여 동일한 키에서 collection을 리샤딩하여 collection을 재배포할 수 있으며, 이는 다른 범위 마이그레이션 절차보다 훨씬 빠릅니다.

명령에 다음 옵션이 추가됩니다.

필드
설명
forceRedistribution
동일 키 리샤딩을 활성화합니다.

예제 는 새 샤드에 데이터 재배포를 참조하세요.

MongoDB 7.1 부터 fsyncfsyncUnlock 명령은 샤드 클러스터에서 fsync 작업을 수행할 수 있습니다.

lock 필드 를 true 로 설정하다 한 상태에서 mongos 에서 실행 하면 fsync 명령은 저장 계층에서 디스크로 쓰기를 플러시하고 각 샤드 를 잠가 추가 쓰기를 방지합니다. 그런 다음 fsyncUnlock 명령을 사용하여 클러스터 를 잠금 해제할 수 있습니다.

이 기능 을 사용하면 mongodump을(를) 사용하여 샤딩된 클러스터의 자체 관리형 백업을 사용할 수 있습니다.

MongoDB 부터는 7.1 updateOne() upsert: true 샤딩된 컬렉션 에서 와 함께 { 를 사용하는 경우 필터하다 에전체 샤드 키 를 포함할 필요 가 없습니다 .

MongoDB 8.0 부터는 샤딩된 컬렉션 을 대상으로 하는 트랜잭션 내에서 $lookup 단계를 사용할 수 있습니다.

MongoDB 8.0 부터 "majority" 쓰기 고려 (write concern) 고려를 사용하는 쓰기 (write) 작업은 대다수의 복제본 세트 구성원이 변경 사항에 대한 oplog 항목을 작성했을 때 승인을 반환합니다. 이렇게 하면 "majority" 쓰기 성능이 향상됩니다. 이전 릴리스에서는 이러한 작업이 대부분의 복제본 세트 멤버가 변경 사항을 적용한 후 기다렸다가 승인을 반환했습니다.

애플리케이션 이 { w: "majority" } 쓰기 (write) 작업에서 승인을 받은 직후에 세컨더리 에서 읽는 경우( 인과적 일관적인 적인 세션이 없는 경우) 쿼리 는 쓰기 (write) 작업의 변경 사항을 포함하지 않은 결과를 반환할 수 있습니다.

MongoDB 8.0 부터 replSetGetStatus 명령을 사용할 때 다음 지표 를 사용할 수 있습니다.

MongoDB 8.0 부터 세컨더리는 각 배치 에 대한 oplog 항목을 병렬로 쓰기 (write) 하고 적용 합니다. 작성기 스레드는 프라이머리 에서 새 항목을 읽고 로컬 oplog 에 씁니다. 적용 스레드는 이러한 변경 사항을 로컬 데이터베이스 에 비동기적으로 적용합니다. 이 변경 사항은 세컨더리의 복제 처리량 을 증가시킵니다.

이렇게 하면 이제 하나가 아닌 두 개의 버퍼에 대한 지표 를 제공하므로 metrics.repl.buffer 에 호환성이 손상되는 호환성이 손상되는 변경 이 도입됩니다.

MongoDB 8.0 은 다음 서버 상태 지표 을 더 이상 사용하지 않습니다.

MongoDB 8.0 은 다음과 같은 서버 상태 지표 을 추가합니다.

MongoDB 8.0 부터 시작됩니다. MongoDB 는 스레드별 캐시 대신 CPU별 캐시 를 사용하는 업그레이드된 버전의 TCMalloc을 사용하여 메모리 조각화를 줄이고 스트레스가 높은 워크로드에 대한 데이터베이스 의 복원력을 향상시킵니다.

새로운 TCMalloc 버전은 Transparent Huge Pages에 대한 이전 프로덕션 권장 사항에 직접적인 영향을 미칩니다. 학습 내용 은 자체 관리 배포서버를 위한 TCMalloc 성능 최적화를 참조하세요.

MongoDB 8.0 부터 다음과 같은 새로운 serverStatus 지표 가 tcmalloc 사용량에 대한 정보를 보고합니다.

MongoDB 8.0 부터 Bulk.insert() 및 데이터 수집 워크로드의 성능이 향상될 수 있습니다. 그러나 이러한 워크로드를 실행 한 후 즉시 MongoDB 를 종료하면 예비 데이터가 디스크로 플러시되기 때문에 시간이 더 오래 걸릴 수 있습니다.

MongoDB 8.0 부터는 일반적인 샤딩된 클러스터 메타데이터 외에 애플리케이션 데이터를 저장 하도록 config 서버 를 구성할 수 있습니다. 그러면 config 서버 를 config 샤드 라고 합니다. 자세한 내용은 구성 샤드를 참조하세요.

MongoDB 7.3 부터 compact 명령에는 압축을 진행하기 위해 복구할 수 있는 최소 저장 공간을 메가바이트 단위로 지정하는 새로운 freeSpaceTargetMB 옵션이 포함됩니다.

MongoDB 8.0 부터는 새로운 autoCompact 명령을 사용하여 배경 압축 을 수행할 수 있습니다. 활성화하면 서버 는 각 컬렉션 및 인덱스 내의 여유 공간을 지정된 freeSpaceTargetMB 값 아래로 유지하려고 시도합니다.

활성화하면 compact 명령은 압축 이 대상 컬렉션 에서 회수할 수 있는 공간의 추정치(바이트)를 반환합니다. dryRun 을(를) true(으)로 설정하다 한 상태에서 compact 을(를) 실행 하면 MongoDB 는 예상 값만 반환하고 어떤 종류의 압축 도 수행하지 않습니다.

MongoDB 7.1 부터 동일한 데이터베이스 에서 서로 다른 컬렉션을 대상으로 하는 여러 DDL 작업 을 실행 하면 MongoDB 가 해당 작업을 동시에 실행합니다.

이 변경 사항은 serverStatus locks 필드와 currentOp.locks 출력에 두 가지 새로운 유형을 추가합니다.

  • DDLDatabase

  • DDLCollection

MongoDB 7.2부터 mongos 배포에서 존재하지 않는 데이터베이스를 사용하려고 하는 집계 파이프라인 쿼리는 유효성 검사 오류를 반환합니다.

이전 버전에서는 이러한 애그리게이션 쿼리가 빈 커서를 반환했습니다.

MongoDB 8.0 에서 클러스터 가 DDL 작업(예: 컬렉션 을 수정하는 작업 reshardCollection)을 실행하는 동안 샤드 를 추가하거나 제거 하면 샤드 를 추가하거나 제거하는 모든 작업은 동시 DDL 작업이 완료된 후에만 실행됩니다.

MongoDB 7.1 부터 파이프라인이 파이프라인 단계 제한을 초과하면 애그리게이션 명령에서 오류가 발생합니다. 자세한 내용 은 단계 수 제한을 참조하세요.

MongoDB 7.2부터 field 연산자의 입력에 문자열로 해석되는 유효한 $getField 표현식 을 지정할 수 있습니다. 이전 버전에서는 field 문자열 상수만 허용합니다.

MongoDB 7.1부터 오류 보고 속도가 빨라지고 회복 탄력성이 향상되어 인덱스 빌드가 개선되었습니다. 디스크 공간이 너무 부족하면 인덱스 빌드를 중지하는 새로운 indexBuildMinAvailableDiskSpaceMB 매개 변수를 사용하여 인덱스 빌드에 필요한 최소 사용 가능한 디스크 공간을 설정할 수도 있습니다.

다음과 같은 새로운 인덱스 빌드 지표 가 추가되었습니다.

자세한 내용은 인덱스 빌드를 참조하세요.

MongoDB 7.1 은 auditConfigmongod 서버 인스턴스의 감사 구성에 mongos 대한 정보를 포함하는 클러스터 매개변수를 추가합니다.

MongoDB 8.0 부터는 defaultMaxTimeMS 클러스터 매개변수를 사용하여 개별 읽기 작업이 완료되는 데 걸리는 기본값 시간 제한을 지정할 수 있습니다.

MongoDB 7.1 은 인덱스 빌드에 필요한 최소 사용 가능한 디스크 공간을 설정하다 수 있는 indexBuildMinAvailableDiskSpaceMB 매개 변수를 추가합니다.

MongoDB 8.0 부터는 tcmallocEnableBackgroundThread 가 기본값 활성화됩니다. 이를 통해 MongoDB 는 주기적으로 메모리를 운영 체제에 다시 출시하다 할 수 있습니다.

MongoDB 8.0 부터는 새로운 bulkWrite 명령을 사용하여 한 번의 요청 으로 여러 컬렉션에 대한 많은 삽입, 업데이트 및 삭제 작업을 수행할 수 있습니다. 기존 db.collection.bulkWrite() 메서드에서는 한 번의 요청 으로 하나의 컬렉션 만 수정할 수 있습니다.

MongoDB 8.0 에 새로운 쿼리 형태 가 도입되었습니다. 기존 쿼리 형태 의 이름이 계획 캐시 쿼리 형태 로 변경됩니다.

MongoDB 8.0 부터 새 쿼리 형태 에 대한 쿼리 설정을 추가할 수 있습니다. 쿼리 옵티마이저 쿼리 계획 중에 쿼리 설정을 추가 입력으로 사용하며, 이는 쿼리 형태 가 일치하는 쿼리 를 실행 하기 위해 선택한 계획에 영향을 줍니다.

쿼리 설정의 기능이 인덱스 필터 에 비해 개선되었습니다. 인덱스 필터도 MongoDB 8.0 부터 더 이상 사용되지 않으므로 사용하지 않는 것이 좋습니다.

MongoDB 8.0 부터 queryShapeHash 가 다음 출력에 포함됩니다.

MongoDB 8.0 부터 기존 queryHash 필드 의 이름이 planCacheShapeHash 로 변경되었습니다. 이전 MongoDB 버전을 사용하는 경우 planCacheShapeHash queryHash 가 표시됩니다.

MongoDB 8.0 부터 getParameter 명령은 setAt 필드 를 허용합니다. 이 필드 를 사용하여 allParameters: true 반환 문서 를 필터하다 하여 스타트업 또는 런타임에 설정하다 수 있는 매개변수만 표시할 수 있습니다.

MongoDB 부터는 고정 사이즈 8.0 "snapshot" 컬렉션에 읽기 고려 (read concern) 를 사용할 수 있습니다.

MongoDB 7.1 부터 serverStatus 명령 출력에 다음과 같은 새로운 지표 가 포함됩니다.

MongoDB 7.2 부터 serverStatus 명령 출력에 다음과 같은 새로운 지표 가 포함됩니다.

MongoDB 7.3 부터 serverStatus 명령 출력에 다음과 같은 새로운 지표 가 포함됩니다.

MongoDB 8.0 부터 serverStatus 명령 출력에 다음과 같은 새로운 지표 가 포함됩니다.

MongoDB 8.0 부터 updateOne() 메서드는 sort 옵션을 지원합니다. 이는 업데이트 를 받을 문서 를 선택하기 전에 MongoDB 가 문서 를 정렬하는 방법을 제어합니다.

이전 릴리스에서는 findAndModify()findOneAndUpdate() 메서드를 사용하여 사용자가 지정한 정렬 순서로 첫 번째 문서 를 업데이트 했습니다. 재시도 가능 쓰기를 지원하려면 이러한 메서드가 전체 문서 를 각 노드 의 특수 사이드 컬렉션 에 복사해야 하며, 이는 새로운 sort 옵션이 있는 updateOne() 메서드보다 비용이 더 많이 드는 작업입니다.

MongoDB 7.1 부터는 distinct 명령에서 hint 필드 를 사용할 수 있으므로 쿼리의 인덱스 를 지정할 수 있습니다.

MongoDB 7.1 부터는 고정 사이즈 컬렉션에 TTL 인덱스 를 생성할 수 있습니다.

버전 8.0 부터 시작됩니다. MongoDB 는 차단 처리 를 사용하여 특정 시계열 쿼리를 실행할 수 있습니다. 이 성능 향상은 개별 값이 아닌 데이터 "블록"에서 쿼리를 처리합니다. 차단 처리 는 Time Series 컬렉션으로 작업할 때 쿼리 실행 속도와 처리량 을 향상시킵니다.

Time Series 쿼리 가 차단 처리 를 사용하는지 확인하려면 계획 설명 출력의 explain.queryPlanner.winningPlan.slotBasedPlan.stages 필드 를 확인합니다.

학습 내용은 차단 처리를 참조하세요.

MongoDB 8.0 부터 제한된 쿼리 설정하다 ( _id 동등성 매치 포함)는 일반 쿼리 계획 및 실행을 건너뜁니다. 대신 이러한 쿼리는 다음 계획 단계 중 하나로 구성된 최적화된 인덱스 스캔 계획을 사용합니다.

  • EXPRESS_CLUSTERED_IXSCAN

  • EXPRESS_DELETE

  • EXPRESS_IXSCAN

  • EXPRESS_UPDATE

쿼리 계획에 대한 자세한 내용은 Explain 결과를 참조하세요.

MongoDB 8.0 부터 거부된 쿼리 계획에는 쿼리 의 find 부분만 포함됩니다. 이전 버전에서는 거부된 계획에 $group 와 같은 집계 단계가 포함될 수 있습니다. 쿼리 플래너가 성공적인 계획을 선택하는 데 이러한 집계 단계를 사용하지 않으므로 rejectedPlans 필드 에는 가장 적합한 계획을 선택하는 데 사용된 쿼리 부분만 포함됩니다.

또한 이 변경 사항은 거부된 계획의 executionStats 이 0이 아님을 보장합니다. 따라서 이제 거부된 계획이 검사한 문서 또는 키의 수와 같은 통계를 볼 수 있습니다.

거부된 쿼리 계획에 대한 자세한 내용은 explain.queryPlanner.rejectedPlans 를 참조하세요.

MongoDB 8.0 부터 다중 문서 트랜잭션 에 대한 삽입 작업이 더 이상 개별 oplog 항목을 생성하지 않습니다. 대신 다중 문서 삽입이 단일 항목으로 배치됩니다. 각 문서 에 대한 변경 스트림 insert 이벤트 에는 동일한 clusterTime 이 있습니다.

이 변경 사항은 다중 문서 삽입 작업의 성능을 향상시키고 여러 oplog 쓰기로 인해 발생할 수 있는 복제 지연 을 제거합니다.

MongoDB 8.0 부터 여러 ID 제공자(IDP)가 정의된 경우 audience 값이 각 발급자에 대해 고유한 한 oidcIdentityProviders 매개 변수는 중복 issuer 값을 허용합니다. 이는 버전 7.3 및 7 에서도 사용할 수 있습니다.0.

MongoDB 8.0 부터 fromcoll 필드의 올바른 사용을 보장하기 위해 $lookup$unionWith 내부의 하위 파이프라인에 있는 네임스페이스의 유효성을 검사합니다.

자세한 내용은 $lookup 하위 파이프라인$unionWith 하위 파이프라인을 참조하세요.

explain() 메서드는 이제 쿼리 플래너 최적화 시간에 대한 정보를 반환합니다. queryPlanner.optimizationTimeMillis 상태는 쿼리 플래너가 최적화에 소비한 시간을 밀리초 단위로 표시합니다.

이 섹션에서는 MongoDB 8.0 의 알려진 문제와 해결 상태에 대해 설명합니다.

버전
이슈
상태
8.0.0
서버-94741:$or 최상위 $and 절(암시적 절 포함)을 포함하는 쿼리에서 여러 $and 인덱스를 사용할 수 있는 경우, 새로운 기간 동안 가장 효율적인 인덱스가 고려 대상에서 잘못 제거되었기 때문에 쿼리 에서 효율성이 낮은 인덱스를 사용할 수 8 있습니다. MongoDB 에서 쿼리 계획의 " 인덱스 정리"0 단계입니다. .
미해결. SERVER-94738 에서인덱스 정리 기능 을 비활성화하여 에서 완화할 계획입니다.8.0.1
8.0.0

서버-95244: 단일 샤드로 샤드된 클러스터에 대한 샤딩된 작업은 다음 사항이 모두 참일 때 더 자주 실패할 수 있습니다.

  • 작업은 mongos 이 아닌 샤드 에 직접 실행됩니다.

  • 업서트 작업은 독점적으로 삽입 작업입니다.

  • 네임스페이스 가 mongos 라우터에서 작업을 수신하고 있지 않습니다.

  • 네임스페이스 가 다른 작업을 수신하고 있지 않습니다.

샤딩된 클러스터 로 전환하는 데 권장 프로세스 에서는 클라이언트를 mongos 라우터로 이동해야 합니다. mongos 라우터에 발행된 쓰기는 영향을 받지 않습니다.

이 문제는 8.0.1 에서 수정될 예정입니다.

중요

기능 호환성 버전

7.0 배포서버 에서 MongoDB 8.0 으로 업그레이드 하려면 7.0 배포서버 에 featureCompatibilityVersion 이(가) 7.0 으)로 설정하다 되어 있어야 합니다. 버전을 확인하려면 다음을 수행합니다.

db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )

MongoDB 8.0 으로 업그레이드 하려면 사용 중인 MongoDB deployment 에 해당하는 업그레이드 지침을 참조하세요.

8.0로 업그레이드하는 방법에 대한 지침이 필요한 경우에 대비하여 MongoDB 전문 서비스 팀은 MongoDB 애플리케이션에 지장을 주지 않고 원활하게 전환할 수 있도록 주요 버전 업그레이드 지원을 제공합니다. 자세한 내용은 MongoDB 컨설팅을 참조하세요.

MongoDB 8.0을 다운로드하려면 MongoDB 다운로드 센터로 이동하세요.

돌아가기

릴리스 노트