Docs Menu
Docs Home
/ /

MongoDB 7.0의 호환성 변경 사항

이 페이지에서는 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으로 다운그레이드를 참조하세요.

더 이상 사용되지 않습니다.
설명

storageDetails

버전 7.0에서 더 이상 사용되지 않습니다.

7.0부터 Linux 에서만 더 이상 사용되지 않습니다.

MongoDB 7.0부터는 무료 모니터링이 사용 중단됩니다. 다음은 사용할 수 없습니다.

  • cloud.monitoring.free 구성 옵션

  • --enableFreeMonitoring server parameter

  • db.enableFreeMonitoring() 명령

  • db.disableFreeMonitoring() 명령

  • setFreeMonitoring 명령

MongoDB 7.0에서는 동일성 쿼리를 사용하는 Queryable Encryption이 정식 출시되었습니다. 정식 출시 버전이 개선되면서 이제 Queryable Encryption 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로 생성한 컬렉션을 마이그레이션하지 말고 새 컬렉션을 만듭니다:

  1. MongoDB 서버와 드라이버를 7.0으로 업그레이드합니다.

  2. 이전 컬렉션과 다른 이름으로 암호화된 새 컬렉션을 구성합니다.

  3. 새 데이터를 삽입하거나 로컬 사본이 있는 경우 기존 데이터의 암호화되지 않은 버전을 삽입합니다.

  4. 이전 버전 6.x 컬렉션을 제거합니다.

새 데이터를 사용할 수 없거나 기존 데이터의 암호화되지 않은 버전이 없는 경우:

  1. MongoDB 서버 및 드라이버를 7.0으로 업그레이드하세요.

  2. 7.0 호환 드라이버를 사용하여 암호화된 컬렉션을 쿼리하여 암호를 해독합니다.

  3. 출력을 로컬에 저장합니다.

  4. 암호화된 새 컬렉션을 구성하고 데이터를 수집합니다.

경고

  • mongoexportmongodump 작업은 컬렉션을 해독하지 않습니다. 해독된 데이터를 출력하려면 드라이버에서 컬렉션을 쿼리해야 합니다.

  • 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 컬렉션에서 부분 TTL 인덱스를 제거합니다.

  • 새 인덱스 매개 변수를 사용하여 컬렉션을 제거하거나 수정합니다. 경우에 따라 collMod를 사용하여 레거시 세분성 설정으로 전환할 수 있으며, 그렇지 않은 경우 다운그레이드하기 전에 컬렉션을 제거해야 합니다.

활성 setClusterParameter 매개 변수 작업으로 인해 기능 호환성 버전(fCV)이 성공적으로 완료되지 않습니다.

다운그레이드하기 전에 encryptedFields 컬렉션 옵션을 사용하는 컬렉션을 제거합니다.

복합 와일드카드 인덱스에는 FCV 7.0 이상이 필요합니다. 7.0 mongod 하나 이상의 복합 와일드카드 인덱스를 사용하는 경우 이전 가 시작되지 않습니다.

MongoDB 7.0 부터 시작됩니다. OIDC 액세스 토큰에 대해 하나의 audience oidcIdentityProviders 필드 만 지정할 수 있습니다. 빈 배열이나 여러 문자열의 배열이 있는 audience 필드는 유효하지 않습니다.

자세한 내용은 oidcIdentityProviders 필드를 참조하세요.

MongoDB 이전 버전에서는 가,, "X" 및 와 7.0$natural 같은 잘못된 유형 값을 0 NaN -0.01허용합니다. MongoDB 이후에 7.0 1 및 이외의 값을 에 -1 $natural전달하면 MongoDB 오류를 반환합니다.

MongoDB 부터는 새로운 및 사용자 6.3 지정 버킷 매개변수를 사용하여 시계열 버킷 세분성을 구성할 수 bucketMaxSpanSeconds bucketRoundingSeconds 있습니다. 미만으로 다운그레이드하려면 6.3 이러한 매개변수가 있는 모든 컬렉션을 삭제하거나 해당 를 사용하도록 수정해야 granularity 합니다. 자세한 내용은 를 collMod 참조하세요.

모든 bucketMaxSpanSecondsbucketRoundingSeconds 값이 granularity 값에 해당하는 것은 아닙니다. 이러한 경우 컬렉션 삭제해야 합니다.

MongoDB 부터는 6.3 Time Series 컬렉션에 부분 TTL (Time To Live) 인덱스를 생성할 수 있습니다. 미만으로 6.3 다운그레이드하려면 time series 컬렉션에서 부분 TTL 인덱스를 모두 제거 해야 합니다.

MongoDB 부터는 컬렉션 에 필드 6.2 value 1 1024 있는 문서를 삽입하거나 업데이트할 때 와(과)(포함) _id: chunksize config.settings 사이에 를 설정하다 해야 합니다. 잘못된 value 를 지정하면 MongoDB 스키마 유효성 검사 오류를 반환합니다.

MongoDB 6.2 이전에 설정하다 1 ~ 1024 MB(포함) 범위 를 벗어나는 모든 value 필드는 변경되지 않습니다.

버전 6.2부터 MongoDB는 addShard 명령에서 maxSize 필드를 제거합니다. 그 결과는 다음과 같습니다.

  • maxSize 필드와 함께 addShard를 실행하면 InvalidOptions 오류가 반환됩니다.

  • shards 컬렉션의 새 문서들은 더 이상 maxSize 필드를 포함하지 않습니다.

  • 기존의 maxSize 필드 항목은 모두 무시됩니다.

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 부터 6.1 의 기본값 coordinateCommitReturnImmediatelyAfterPersistingDecisionfalse 입니다.

currentOp.opStatus MongoDB 6.1의 리샤딩 지표 에서 제거되었습니다.

time series 버킷 컬렉션 네임스페이스 (즉, 접두사가 붙은 컬렉션 system.buckets)에서는 뷰를 만들 수 없습니다.

이전 버전에서 MongoDB 6.1 으로 업그레이드하는 경우 system.buckets 컬렉션에 생성된 모든 뷰를 삭제해야 합니다.

돌아가기

7.0

이 페이지의 내용