Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ /

MongoDB 8.0의 호환성 변경 사항

이 페이지의 내용

  • 쿼리 동작
  • 지원 중단
  • 이전 버전과 호환되지 않는 기능
  • 일반 변경 사항
  • 집계

MongoDB 8.0 부터 동등성 매치 표현식에서 null 과의 비교가 undefined 값과 일치하지 않습니다.

예를 예시, 다음과 같은 문서와 쿼리 를 가정해 보겠습니다.

// people collection
[
{ _id: 1, name: null },
{ _id: 2, name: undefined },
{ _id: 3, name: [ "Gabriel", undefined ],
{ _id: 4, names: [ "Alice", "Charu" ] }
]
db.people.find( { name: null } )

MongoDB 8.0 이전에는 위의 쿼리가 다음과 같은 문서와 일치했습니다.

  • name 필드 는 null (_id: 1)입니다.

  • name 필드 가 undefined 이거나 undefined 배열 요소(_id: 2_id: 3)를 포함합니다.

  • name 필드 가 존재하지 않습니다(_id: 4).

MongoDB 8.0부터 앞의 쿼리 는 name 필드 가 undefined 이거나 undefined 배열 요소가 포함된 문서와 일치하지 않습니다. 쿼리 는 다음과 같은 경우에만 문서와 일치합니다.

  • name 필드 가 null 이거나 null 배열 요소(_id: 1)를 포함합니다.

  • name 필드 가 존재하지 않습니다(_id: 4).

이 쿼리 동작 변경은 이러한 작업에도 영향을 줍니다.

  • $eq

  • $in

  • $lookup, null 로컬 필드 가 더 이상 undefined 외부 필드 와 일치하지 않기 때문입니다.

쿼리를 다시 작성하거나 이러한 동작 변경을 고려하여 데이터를 마이그레이션 하는 방법을 학습 보려면 정의되지 않은 데이터 및 쿼리 마이그레이션을 참조하세요.

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

MongoDB 8.0 부터 시작됩니다. LDAP 인증 및 권한 부여 는 더 이상 사용되지 않습니다. LDAP 는 사용할 수 있으며 MongoDB 8 의 수명 기간 동안 변경 없이 계속 작동합니다. LDAP 는 향후 주요 출시하다 에서 제거될 예정입니다.

자세한 내용은 LDAP 사용 중단을 참조하세요.

LDAP 마이그레이션 정보는 향후 제공될 예정입니다.

헤지된 읽기

MongoDB 8.0 부터 헤지된 읽기(hedged read)는 더 이상 사용되지 않습니다. 읽기 설정 nearest 을 지정하는 쿼리는 더 이상 기본적으로 헤지된 읽기(hedged read)를 사용하지 않습니다. 헤지된 읽기(hedged read)를 명시적으로 지정하면 MongoDB는 헤지된 읽기(hedged read)를 수행하고 경고를 기록합니다.

인덱스 필터

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

MongoDB 8.0 부터는 인덱스 필터 를 추가하는 대신 쿼리 설정을 사용합니다. 인덱스 필터는 MongoDB 8.0 부터 더 이상 사용되지 않습니다.

쿼리 설정에는 인덱스 필터보다 더 많은 기능이 있습니다. 또한 인덱스 필터는 영구적이지 않으며 모든 클러스터 노드에 대한 인덱스 필터를 쉽게 만들 수 없습니다. 쿼리 설정을 추가하고 예제를 탐색하려면 setQuerySettings 를 참조하세요.

서버 측 JavaScript 함수

MongoDB 8.0 부터 서버 측 JavaScript 함수($accumulator, $function, $where)는 더 이상 사용되지 않습니다. MongoDB 는 이러한 함수를 실행 때 경고를 기록합니다.

tcmallocAggressiveMemoryDecommit
MongoDB 8.0 은 tcmallocAggressiveMemoryDecommit 매개 변수를 더 이상 사용하지 않습니다.
enableFinerGrainedCatalogCacheRefresh
MongoDB 8.0 은 enableFinerGrainedCatalogCacheRefresh 매개 변수를 더 이상 사용하지 않습니다.
timeField time series 컬렉션 을 위한 샤드 키

MongoDB 8.0부터는 Time Series 컬렉션에서 timeField를 샤드 키로 더 이상 사용할 수 없습니다.

cleanupOrphaned
MongoDB 8.0 은 cleanupOrphaned 명령을 더 이상 사용하지 않습니다. 고아 문서가 남아 있지 않은지 확인하려면 $shardedDataDistribution 를 대신 사용합니다.
rangePreview

MongoDB 8.0부터 rangePreview Queryable Encryption 알고리즘 은 더 이상 사용되지 않으며 제거되었습니다. 대신 Range 알고리즘 을 사용합니다.

Queryable Encryption 컬렉션 에서 rangePreview 사용하는 경우 MongoDB 8.0으로 업그레이드 하기 전에 컬렉션 을 삭제해야 합니다.

MongoDB 8.0 부터는 샤드에서 특정 명령 만 실행 수 있습니다. 샤드 에 직접 연결하려고 하고 지원되지 않는 명령을 실행 하면 MongoDB 가 오류를 반환합니다.

"You are connecting to a sharded cluster improperly by connecting directly
to a shard. Please connect to the cluster via a router (mongos)."

샤드 에 대해 지원되지 않는 데이터베이스 명령 을 직접 실행 하려면 mongos 에 연결하거나 유지 관리 전용 directShardOperations 역할 이 있어야 합니다.

MongoDB 는 샤드 에 대해 직접 명령을 실행 수 있도록 하여 복제본 세트 에서 1- 샤드 클러스터 로의 온라인 전환을 지원합니다. 그러나 클러스터 에 둘 이상의 샤드 가 있는 경우 유지 관리 전용 directShardOperations 역할 없이 샤드 에 대해 나열된 명령 만 직접 실행 수 있습니다.

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

MongoDB 8.0 부터 세컨더리는 각 배치 에 대한 oplog 항목을 병렬로 쓰기 (write) 하고 적용 합니다. 이렇게 하면 이제 하나가 아닌 두 개의 버퍼에 대한 정보를 제공하므로 metrics.repl.buffer 상태 지표에 호환성이 손상되는 호환성이 손상되는 변경 이 도입됩니다.

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

다음 지표 로 대체됩니다.

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

MongoDB 8.0 부터 동일한 컬렉션에서 여러 개의 compact 명령을 동시에 실행하려고 하면 MongoDB에서 오류를 반환합니다.

MongoDB 8.0 부터는 잘못된 입력이 포함된 지리 공간적 쿼리를 사용할 수 없습니다. 이전 버전에서는 특정 지리 공간적 쿼리가 잘못된 입력을 오류 없이 허용했습니다.

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

MongoDB 8.0 부터 wiredTiger.concurrentTransactions 의 이름이 queues.execution 로 변경되었습니다.

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

MongoDB 부터 8.0 는$shardedDataDistribution 프라이머리 샤드에 청크 또는 고아 문서가 있는 경우에만 컬렉션의 프라이머리 샤드 에 대한 출력을 반환합니다.

자세한 내용은 $shardedDataDistribution를 참조하세요.

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

더 나은 성능으로 새로운 TCMalloc을 사용하려면 자체 관리 배포서버를 위한 TCMalloc 성능 최적화를 참조하세요.

돌아가기

8.0 (안정 릴리스)