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, name2: "Alice" }
db.people.find( { name: null } )

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

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

  • name 필드는 undefined (_id: 2)입니다.

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

MongoDB 8.0 부터 앞의 쿼리는 name 필드가 undefined (_id: 2)인 문서와 일치하지 않습니다.

nameundefined 인 문서를 일치시키려면 쿼리에 undefined 유형을 명시적으로 지정해야 합니다. 예를 들어 다음 쿼리는 모든 샘플 문서를 반환합니다.

db.people.find( {
$or: [
{ name: null },
{ name: { $type: "undefined" } }
]
} )

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

  • $eq

  • $in

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

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

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

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

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

헤지된 읽기(hedged read)

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 를 대신 사용합니다.

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" 쓰기 고려를 사용하는 쓰기 작업은 대다수의 복제본 세트 구성원이 변경 사항에 대한 oplog 항목을 작성했을 때 승인을 반환합니다. 이렇게 하면 "majority" 쓰기 성능이 향상됩니다. 이전 릴리스에서는 이러한 작업이 대부분의 복제본 세트 구성원이 변경 사항을 적용한 후 대기하고 승인을 반환했습니다.

MongoDB 8.0 부터 세컨더리는 각 배치에 대한 oplog 항목을 병렬로 작성하고 적용합니다. 이렇게 하면 이제 하나가 아닌 두 개의 버퍼에 대한 정보를 제공하므로 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)가 정의된 경우 oidcIdentityProviders 매개변수는 audience 값이 각 발급자에 대해 고유한 한 중복 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 시작. , MongoDB는 스레드별0 캐시 대신 CPU별 캐시 를 사용하는 업그레이드된 버전의 TCMalloc을 사용하여 메모리 조각화를 줄이고 스트레스가 높은 워크로드에 대한 데이터베이스의 복원력을 향상시킵니다.

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

돌아가기

8.0