이 페이지에서는 MongoDB 이전 버전과의 호환성에 영향을 줄 수 있는 MongoDB 7.0에 도입된 변경 사항에 대해 설명합니다.
MongoDB 7.0은 Major Release입니다. 따라서 MongoDB Atlas 배포와 온프레미스 배포를 모두 지원합니다. MongoDB 7.0에는 MongoDB Rapid Release 6.1, 6.2, 6.3에 도입된 변경 사항이 포함됩니다. 이 페이지에서는 이러한 Rapid Release와 MongoDB 7.0에 도입된 호환성 변경 사항을 설명합니다.
Major Release와 Rapid Release의 차이점에 학습 보려면 MongoDB 버전 관리를 참조하세요.
MongoDB 7.0에서 다운그레이드하는 방법에 대한 자세한 내용은 7.0에서 6.0으로 다운그레이드를 참조하세요.
지원 중단
더 이상 사용되지 않습니다. | 설명 |
|---|---|
| 버전 7.0에서 더 이상 사용되지 않습니다. |
7.0부터 Linux 에서만 더 이상 사용되지 않습니다. |
중단된 무료 모니터링
MongoDB 7.0부터는 무료 모니터링이 사용 중단됩니다. 다음은 사용할 수 없습니다.
cloud.monitoring.free구성 옵션--enableFreeMonitoringserver parameterdb.enableFreeMonitoring()명령db.disableFreeMonitoring()명령setFreeMonitoring명령
Queryable Encryption 일반 가용성
MongoDB 7.0에서는 동일성 쿼리를 사용하는 Queryable Encryption이 정식 출시되었습니다. 정식 출시 버전이 개선되면서 이제 Queryable Encryption Public Preview와는 호환이 되지 않습니다. 정식 버전이 출시된 만큼 앞으로 해당 기능을 사용하지 않습니다.
Public Preview와 정식 출시 간의 서버 및 드라이버 호환성
동일성 쿼리와 함께 Queryable Encryption을 사용하려면 MongoDB 서버가 버전 7.0 이상이어야 하며 드라이버가 7.0과 호환되어야 합니다. MongoDB 6.x에 포함된 Queryable Encryption Public Preview를 계속 사용하는 경우 서버는 버전 6.x를 유지하고 드라이버는 6.x와 호환되어야 합니다. 7.0 서버에서는 MongoDB 6.x 호환 드라이버를 사용하거나 6.x 서버에서 7.0 호환 드라이버를 사용할 수 없습니다. 이 작업을 시도하면 오류가 발생합니다.
업그레이드를 더 쉽게 하기 위해 MongoDB 7.0 드라이버는 MongoDB 6.x 드라이버에서 생성된 데이터를 해독할 수 있습니다. 업그레이드 옵션은 다음 섹션을 참조하세요.
새로 시작(권장)
가능하면 MongoDB 6.x에서 Queryable Encryption Public Preview로 생성한 컬렉션을 마이그레이션하지 말고 새 컬렉션을 만듭니다:
MongoDB 서버와 드라이버를 7.0으로 업그레이드합니다.
이전 컬렉션과 다른 이름으로 암호화된 새 컬렉션을 구성합니다.
새 데이터를 삽입하거나 로컬 사본이 있는 경우 기존 데이터의 암호화되지 않은 버전을 삽입합니다.
이전 버전 6.x 컬렉션을 제거합니다.
마이그레이션
새 데이터를 사용할 수 없거나 기존 데이터의 암호화되지 않은 버전이 없는 경우:
MongoDB 서버 및 드라이버를 7.0으로 업그레이드하세요.
7.0 호환 드라이버를 사용하여 암호화된 컬렉션을 쿼리하여 암호를 해독합니다.
출력을 로컬에 저장합니다.
암호화된 새 컬렉션을 구성하고 데이터를 수집합니다.
경고
mongoexport및mongodump작업은 컬렉션을 해독하지 않습니다. 해독된 데이터를 출력하려면 드라이버에서 컬렉션을 쿼리해야 합니다.MongoDB 7.0 호환 드라이버는 MongoDB 6.x 호환 드라이버로 암호화된 데이터에서 암호화된 필드를 쿼리할 수 없습니다. 데이터를 해독하려면 암호화되지 않은 필드를 쿼리하거나 전체 컬렉션을 쿼리합니다.
이전 버전과 호환되지 않는 기능
다음 7.0 기능은 이전 버전의 MongoDB와 호환되지 않습니다. MongoDB 7.0에서 이전 버전으로 다운그레이드하려면 다음 기능을 사용하는 데이터를 제거해야 합니다.
범위 인덱스가 있는
encryptedFields컬렉션복합 와일드카드 인덱스에는 FCV 7.0 이상이 필요합니다. 7.0
mongod하나 이상의 복합 와일드카드 인덱스를 사용하는 경우 이전 가 시작되지 않습니다.changeStreamPreAndPostImages를 활성화한 컬렉션이 있는 구성 서버time series 컬렉션의 부분 필터가 있는 세컨더리 TTL 인덱스
사용자 지정 버킷팅 매개 변수를 사용하는 time series 컬렉션
노드 내 인증
MongoDB 7.0부터는 속성 또는 확장 값으로 식별되는 클러스터 멤버로 X.509 인증서를 인증하도록 서버를 구성할 수 있습니다. 롤링 업그레이드 중에 대체 인증서를 허용하도록 이 구성을 재정의할 수도 있습니다.
MongoDB 6.0으로 다운그레이드하려면 인증서 로테이션 절차를 수행하여 net.tls.clusterAuthX509 설정을 해제하고 클러스터 멤버십 인증서를 DC, O 및 OU 속성이 일치하는 인증서로 로테이션합니다.
이 작업이 완료되면 클러스터를 다운그레이드할 수 있습니다.
Time Series
Time series 컬렉션에서 부분 TTL 인덱스를 제거합니다.
새 인덱스 매개 변수를 사용하여 컬렉션을 제거하거나 수정합니다. 경우에 따라
collMod를 사용하여 레거시 세분성 설정으로 전환할 수 있으며, 그렇지 않은 경우 다운그레이드하기 전에 컬렉션을 제거해야 합니다.
cluster 구성
활성 setClusterParameter 매개 변수 작업으로 인해 기능 호환성 버전(fCV)이 성공적으로 완료되지 않습니다.
암호화된 멀티 맵(EMM)
다운그레이드하기 전에 encryptedFields 컬렉션 옵션을 사용하는 컬렉션을 제거합니다.
와일드카드 인덱스
복합 와일드카드 인덱스에는 FCV 7.0 이상이 필요합니다. 7.0 mongod 하나 이상의 복합 와일드카드 인덱스를 사용하는 경우 이전 가 시작되지 않습니다.
OIDC 액세스 토큰 인증 동작
MongoDB 7.0 부터 시작됩니다. OIDC 액세스 토큰에 대해 하나의 audience oidcIdentityProviders 필드 만 지정할 수 있습니다. 빈 배열이나 여러 문자열의 배열이 있는 audience 필드는 유효하지 않습니다.
자세한 내용은 oidcIdentityProviders 필드를 참조하세요.
$natural 매개변수 허용 값
MongoDB 이전 버전에서는 가,, "X" 및 와 7.0$natural 같은 잘못된 유형 값을 0 NaN -0.01허용합니다. MongoDB 이후에 7.0 1 및 이외의 값을 에 -1 $natural전달하면 MongoDB 오류를 반환합니다.
MongoDB 6.3에 도입된 변경 사항
세분성 설정
MongoDB 부터는 새로운 및 사용자 6.3 지정 버킷 매개변수를 사용하여 시계열 버킷 세분성을 구성할 수 bucketMaxSpanSeconds bucketRoundingSeconds 있습니다. 미만으로 다운그레이드하려면 6.3 이러한 매개변수가 있는 모든 컬렉션을 삭제하거나 해당 를 사용하도록 수정해야 granularity 합니다. 자세한 내용은 를 collMod 참조하세요.
모든 bucketMaxSpanSeconds 및 bucketRoundingSeconds 값이 granularity 값에 해당하는 것은 아닙니다. 이러한 경우 컬렉션 삭제해야 합니다.
Time Series 컬렉션을 위한 부분 TTL 인덱스
MongoDB 부터는 6.3 Time Series 컬렉션에 부분 TTL (Time To Live) 인덱스를 생성할 수 있습니다. 미만으로 6.3 다운그레이드하려면 time series 컬렉션에서 부분 TTL 인덱스를 모두 제거 해야 합니다.
MongoDB 6.2에 도입된 변경 사항
config.settings 스키마 유효성 검사
MongoDB 부터는 컬렉션 에 필드 6.2 value 1 1024 있는 문서를 삽입하거나 업데이트할 때 와(과)(포함) _id: chunksize config.settings 사이에 를 설정하다 해야 합니다. 잘못된 value 를 지정하면 MongoDB 스키마 유효성 검사 오류를 반환합니다.
MongoDB 6.2 이전에 설정하다 1 ~ 1024 MB(포함) 범위 를 벗어나는 모든 value 필드는 변경되지 않습니다.
제거된 옵션
버전 6.2부터 MongoDB는 addShard 명령에서 maxSize 필드를 제거합니다. 그 결과는 다음과 같습니다.
MongoDB 6.1에 도입된 변경 사항
$add 부동 소수점 반올림 오류
MongoDB 부터 표현식 6.1 $add 여러 부동 점 값이 포함된 입력 목록을 수신하면 MongoDB 이전 버전과 약간 다른 결과를 반환할 수 있습니다.
$add 표현식 더 이상 부동 소수점 반올림 오류를 설명하지 않습니다. 따라서 $add 은 대부분의 프로그래밍 언어에서 더하기처럼 작동합니다.
예시 들어, 다음 $add 표현식 MongoDB 6.1 에서 실행 때 이전 버전과 다른 결과를 반환합니다.
db.test.aggregate( [ { $project: { sumOfValues: { $add: [ 0.1, 0.2, 0.3 ] } } } ] )
MongoDB 6.1 이상 출력:
[ { _id: ObjectId("6390f8085425651d8d0ef0a7"), sumOfValues: 0.6000000000000001 } ]
MongoDB 6.0 및 이전 출력:
[ { _id: ObjectId("6390f8085425651d8d0ef0a7"), sumOfValues: 0.6 } ]
자동 청크 분할 없음
MongoDB 6.0.3부터 자동 청크 분할이 수행되지 않습니다. 이는 밸런싱 정책 개선 때문입니다. 자동 분할 명령이 여전히 존재하지만 작업을 수행하지 않습니다.
MongoDB 6.1 부터 다음 자동 분할 명령은 작업을 수행하지 않습니다.
제거된 옵션
MongoDB 6.1부터는 저널링이 항상 활성화됩니다. 결과적으로 MongoDB는 storage.journal.enabled 옵션과 해당 --journal 및 --nojournal 명령줄 옵션을 제거합니다.
MongoDB 6.1 부터 SNMP가 제거됩니다. 모든 관련 명령줄 옵션으로 인해 mongod 가 시작되지 않습니다. 배포서버 모니터 하려면 MongoDB Ops Manager 사용합니다.
MongoDB 서버 매개변수
MongoDB 부터 6.1 의 기본값 coordinateCommitReturnImmediatelyAfterPersistingDecision 은 false 입니다.
샤딩 지표 변경 사항
currentOp.opStatus MongoDB 6.1의 리샤딩 지표 에서 제거되었습니다.
버킷 컬렉션 네임스페이스에서 허용되지 않는 보기
time series 버킷 컬렉션 네임스페이스 (즉, 접두사가 붙은 컬렉션 system.buckets)에서는 뷰를 만들 수 없습니다.
이전 버전에서 MongoDB 6.1 으로 업그레이드하는 경우 system.buckets 컬렉션에 생성된 모든 뷰를 삭제해야 합니다.