MongoDB 6.0 릴리스 노트
이 페이지의 내용
이 페이지에서는 MongoDB 6.0에 도입된 변경 사항과 새로운 기능에 대해 설명합니다.
MongoDB 6.0은 Major Release입니다. 따라서 MongoDB Atlas 배포와 온프레미스 배포 모두를 지원합니다. MongoDB 6.0에는 MongoDB Rapid Release 5.1, 5.2, 5.3에 도입된 변경 사항이 포함됩니다. 이 페이지에서는 이러한 Rapid Release와 MongoDB 6.0에 도입된 변경 사항에 대해 설명합니다.
Major 릴리스와 Rapid Release의 차이점에 학습 보려면 MongoDB 버전 관리를 참조하세요.
경고
과거 릴리스 제한 사항
아래의 중요 권고 사항은 일부 이전 MongoDB 버전에 영향을 미칩니다. 중요 권고 사항의 영향을 받는 기능을 기반으로 배포하는 경우 사용 가능한 최신 패치 릴리스로 업그레이드하세요.
이슈 | 영향을 받는 버전 |
---|---|
6.0.0 | |
6.0.0 - 6.0.12 | |
6.0.0~6.0.11 (metaField 내장된 객체에 의해 샤딩된 시계열 컬렉션) | |
6.0.0 - 6.0.13 | |
6.0.0~6.0.4 (ARM64 또는 POWER 시스템 아키텍처) | |
6.0.0~6.0.5 (Ops Manager 또는 Cloud Manager 클러스터의 증분 백업) |
패치 릴리스
6.0.18 - 2024년 9월 30일
서버-70508 Linux 에서 serverStatus의 extra_info에 현재 스레드 수를 추가합니다.
서버- v에서 SBE 쿼리 엔진 을 비활성화합니다.94166 60
6.0.17 - 8월 21, 2024
중요
CSFLE 및 Queryable Encryption 자체 조회가 하위 파이프라인의 값을 암호 텍스트 대신 일반 텍스트로 전송할 수 있는 문제를 수정했습니다.
CVE-2024-8013 로 인해 6.0.16 이전 MongoDB 6.0 에서 특정 복잡한 자체 참조 $lookup
하위 파이프라인에 대한 쿼리 분석의 버그로 인해 암호화됨 표현식에 리터럴 값이 발생할 수 있습니다. 서버 로 전송되는 필드의 형식이 잘못되었습니다.
이 경우 문서는 반환되거나 기록되지 않습니다. 이 문제는 다음 MongoDB Server 버전의 mongocryptd
바이너리 및 mongo_crypt_v1
공유 라이브러리에 영향을 줍니다.
7.3.0 - 7.3.3
7.0.0 - 7.0.11
6.0.0 - 6.0.16
5.0.0 - 5.0.28
CVSS 점수: 2.2
CWE: CWE-319: 민감한 정보의 일반 텍스트 전송
서버-96254 CSFLE 및 Queryable Encryption 자체 조회가 하위 파이프라인의 값을 암호화하지 못할 수 있음
서버-85892 $documents 반환 오류 후 파이프라인과 $merge
SERVER-91195
최상위 시계열 컬렉션 옵션을 놓치지 않도록 일반적인 백포터블 솔루션 제공 서버-91362 성능: 캐시된 JsExecution이 있는 경우 JS "범위" 객체를 복사하지 마세요.
SERVER-91406 $changeStreamSplitLargeEvent는 이름을 바꿀 수 없는 일치 표현식과 함께 사용될 때 위치7182803 오류를 반환합니다.
WT-12708 축출 무작위 순회의 평가/개정
6.0.16 - Jun 28, 2024
서버-79637 잘못된 쿼리로 인해 상관 관계가 지정된 조건자를 사용하여 TS 외부 컬렉션과
$lookup
서버-86474
$set: { foo: Timestamp(0, 0) }
를 포함한$_internalApplyOplogUpdate가 올바르게 복제되지 않습니다.SERVER-89625 백업 중 네임스페이스 및 UUID 보고 시 DirectoryPerDb 및 wiredTigerDirectoryForIndexes를 올바르게 처리
WT-10807 트리 워크의 일부로 메모리 내 삭제된 페이지 건너뛰기
WT-12609 체크포인트 정리 및 페이지 제거 논리 개선
6.0.15 - 4월 18, 2024
SERVER-72703 $out의 db 잠금을 MODE_IX로 다운 그레이드
서버-78556 internalInsertMaxBatchSize의 기본값을 64로 반환
SERVER-80363 서버 기본 writeConcern은 wtimeout이 설정된 경우 적용되지 않음
SERVER-83602 $or - > $in MatchExpression 재작성은 $or를 생성하지 않아야 하며 다른 $or에 직접 중첩되어서는 안 됨
WT-11062 참조 주소를 안전하게 해제하여 동시 액세스를 허용함
6.0.14 - Feb 28, 2024
중요
MongoDB Server가 신뢰할 수 없는 연결에 성공할 수 있는 문제를 수정했습니다.
CVE-2024-1351 로 인해 6.0.14 이전의 MongoDB 6.0 에서, --tlsCAFile
및 CAFile
의 특정 구성에서 MongoDB Server는 피어 인증서 유효성 검사를 건너뛸 수 있으며, 이로 인해 신뢰할 수 없는 연결이 성공할 수 있습니다.
이렇게 하면 TLS에서 제공하는 보안 보장과 인증서 유효성 검사 실패로 인해 닫아야 하는 열린 연결이 효과적으로 줄어들 수 있습니다. 이 문제는 다음 MongoDB Server 버전에 영향을 미칩니다.
7.0.0 - 7.0.5
6.0.0 - 6.0.13
5.0.0 - 5.0.24
4.4.0 - 4.4.28
CVSS 점수: 8.8
CWE: CWE-295: 부적절한 인증서 유효성 검사
SERVER-82353 MovePrimary가 동시에 실행될 때 다중 문서 트랜잭션이 문서를 놓칠 수 있음
SERVER-83119 notablescan가 활성화된 경우 클러스터형 컬렉션에서 세컨더리 복제본 충돌
서버-83145 공유 버퍼 조각이 freeUnused()에서 메모리 사용량을 잘못 추적
SERVER-83564 프로세스 필드가 config.locks에 색인되어 있는지 확인함
WT-12077 택의 버퍼에 대한 zSeries의 하드웨어 체크섬 계산이 잘못됨
6.0.13 - 2024년 1월 18일
서버-33494 WT SizeStorer는 이전 항목을 삭제하지 않음
SERVER-50792 shardCollection/refineCollectionShardKey에 대한 샤드 키 인덱스를 찾을 수 없는 경우 더 유용한 오류를 반환함
SERVER-70155 oplog 슬롯이 mongod '느린 쿼리' 로그 줄에 열려 있는 기간을 추가합니다
SERVER-77506 샤딩된 다중 문서 트랜잭션은 데이터와 ShardVersion이 일치하지 않을 수 있음
SERVER-83091 $or 쿼리는 계획을 열거하는 동안 무한 루프를 트리거할 수 있음
6.0.12 - 2023년 11월 27일
서버-69244 세션 기본 읽기 고려(read concern)가 '다수'로 설정된 경우 $merge가 실패함
SERVER-81295 V1 재개 토큰으로 V2 changeStream 파이프라인을 재개할 수 없음
SERVER-81966 새로 고침하는 동안 이전 ChunkMap 인스턴스 수정을 방지합니다
WT-7929 체크포인트 중 FTDC 중단을 방지하기 위해 솔루션을 조사함
WT-11564 최신 트랜잭션 값이 체크포인트에 존재할 때만 읽도록 RTS를 수정함
6.0.11 - 2023년 10월 11일
서버-58534 FTDC에서 fCV 수집
서버-69244 세션 기본 읽기 고려(read concern)가 '다수'로 설정된 경우 $merge가 실패함
서버-71520 RSTL 획득 제한시간 시 모든 스레드 스택 덤프
서버-79498 $vectorSearch를 6.0으로 백포트
SERVER-80021 double과 string 사이에서 $convert 왕복을 올바르게 수행함
6.0.10 - 2023년 9월 14일
SERVER-71627 클러스터에 1백만 개의 청크가 포함된 경우 캐시된 컬렉션 경로 정보를 새로 고침하면 모든 클라이언트 요청이 엄격하게 차단됨
서버-73394 잘못된 OperationBlockedByRefresh 측정항목 삭제
SERVER-77183 $project 뒤에 $group을 붙이면 잘못된 결과가 나오는 경우가 있음
서버-79771 리샤딩 작업의 복원력을 networkInterfaceExceededTimeLimit으로 설정 6.0.10의 모든 Jira 문제 해결
6.0.9 - 2023년 8월 14일
SERVER-60466 addShard가 실행되기 전에 서명된 $clusterTimes를 복제본 세트 --shardsvrs에 확산(gossip)하는 드라이버 지원
SERVER-74954 포함된 $or가 $elemMatch 예비 조건을 다시 작성하면 잘못된 결과가 발생함
SERVER-79136 시계열에 대한 metaField의 $match + $group의 잘못된 쿼리 결과
WT-10759 조정 중 기록 저장소 페이지 강제 퇴거를 다시 시도하지 않음
WT-11064 업데이트 확인의 일부로 전역에 나타나는 삭제 표시를 건너뜀
6.0.8 - 2023년 7월 13일
서버-61127 청크 마이그레이션이 진행 중인 경우 다중 쓰기로 인해 재시도 시도 횟수가 소진될 수 있음
SERVER-77005 LDAP 가동 중단 시간 동안 LDAP 사용자 로그인 상태 유지
SERVER-78126 특정 종류의 입력의 경우, 빅 엔디안 플랫폼에서 mongo::Value()가 항상 동일한 결과로 해시함
6.0.7 - 2023년 6월 28일
SERVER -71985 DuplicateKey 오류 발생 시 time series 삽입을 자동으로 재시도함
SERVER-73007 멀티패스 인증에 대해 CURL_OPT_SEEKFUNCTION이 설정되지 않음
SERVER-74551 mongo5.0으로 업그레이드 후 findAndModify 중에 WriteConflictException이 불필요하게 경고로 기록됨
SERVER-77018 dbStats와 2 인덱스 빌드 간의 교착 상태가 발생함
WT-10449 기록 저장소에 기록할 업데이트가 없으면 업데이트 체인을 저장하지 않음
WT-11031 체크포인트에서 시간 창 정보가 없는 테이블을 건너뛰도록 RTS를 수정함
6.0.6 - 2023년 5월 12일
SERVER-51835 Mongos readPreferenceTags가 예상대로 작동하지 않습니다
SERVER-67105 $in 쿼리가 클러스터형 인덱스를 사용하지 않음
서버-72774 정지 모드의 노드가 투표에서 승리 가능
SERVER-74930 $avg가 집계 $group에서 평균 대신 합계 반환
SERVER-75205 모든 읽기 티켓이 소진되면 산출 후 잠금 복원과 강등 간 교착 상태가 발생함
6.0.5 - 2023년 3월 13일
수정된 문제:
SERVER-61909 인덱스 항목이 많은 문서의 삽입 또는 삭제가 중단됨
서버-66469 날짜 필드를 사용한 시계열 필터링은 1970년 이전 결과 미포함
SERVER -68122 초기 동기화 중 컬렉션 WiredTiger 구성 문자열 복제 조사
서버-70395 슬롯 기반 엔진은 $group에 디스크를 지나치게 적극적으로 사용하므로 속도가 감소함
SERVER-73232
_killOperations
의 기본 로그 상세도 변경
6.0.4 - 2023년 1월 26일
수정된 문제:
SERVER-72416 find와 findAndModify 프로젝션 코드가 컬렉션 수준 데이터 정렬을 따르지 않음
SERVER-71759
dataSize
명령이 반환되지 않습니다.SERVER-70237 청크 병합 커밋에서 BSON 객체를 너무 크게 만들지 않아야 함
SERVER-72222
mapReduce
단일 reduce 최적화를 사용시 샤딩된 클러스터에서 결과 병합 실패WT-9268 일관성을 유지하기 위한 내역 저장소 기록 삭제 시 지연됨
6.0.3 - 2022년 11월 21일
수정된 문제:
SERVER-66289 v5.0.8에서 $out이 BSONObj 크기 오류를 잘못 발생시킴
SERVER-68139 프로젝션 정렬이 100MB보다 큰 경우 리샤딩 명령이 실패함
SERVER-68371 MongoClient에서 CSFLE를 활성화하면 Atlas Search가 실패함
SERVER-68115 "elemMatchRootLength > 0" 불변 trigger에 생기는 버그를 수정함
서버-68394 _id 인덱스가 누락된 경우 복구 시작 시 강력한 잠금이 생성되지 않도록 보장
6.0.2 - 2022년 9월 28일
수정된 문제:
SERVER-68925 시작 시 검사 테이블 로깅 설정을 다시 도입함(SERVER-43664를 되돌림)
SERVER-68628 프라이머리 페일오버 이후 실패한 리샤딩 작업을 다시 시도하면 서버 충돌이 발생하거나 쓰기 (write)가 손실될 수 있음
SERVER-63852 getThreadName() 충돌이 발생하지 않아야 함
서버-65317 mongod가 간단한 $search 쿼리 실행 후 연결 풀에서 연결 제거
SERVER-63843 동기 신호 핸들러에서 재귀적 doLog를 허용하지 않음
WT-9870 복구 중 가장 오래된 타임스탬프가 업데이트될 때마다 고정된 타임스탬프를 업데이트하는 문제를 수정함
6.0.1 - Aug 19, 2022
수정된 문제:
SERVER-68511
config.databases
항목의 MovePrimary 업데이트는 반드시 점으로 구분된 필드 표기법을 사용해야 함SERVER-68062 $GeoNear를 사용하는 다단계 집계는 제약 조건을 위반할 수 있습니다.
서버-66072 $match 샘플링 및 $group 집계 이상한 동작
서버-68130 자동 분할 벡터가 BSONObjMaxUserSize보다 큰 응답을 생성할 수 있음
SERVER-68209
config.image_collection
항목이 무효화되는 것을 방지하는 uassert를 제거합니다.
6.0.0 - 2022년 7월 19일
이 페이지의 나머지 부분에서는 MongoDB 6.0에 도입된 변경 사항과 새로운 기능에 대해 설명합니다.
집계
새로운 집계 단계
MongoDB 6.0에는 다음과 같은 집계 단계가 도입되었습니다.
단계 | 설명 |
---|---|
지정된 필드의 값이 누락된 일련의 문서로 새 문서를 만듭니다. | |
입력 표현식에서 리터럴 문서를 반환합니다. | |
문서 내에서 | |
버전 6.0.3에 추가: 샤드 컬렉션에 관한 크기와 데이터 분포 정보를 제공합니다. |
새로운 집계 연산자
MongoDB 6.0에는 다음과 같은 집계 연산자가 도입되었습니다.
연산자 | 설명 |
---|---|
지정된 정렬 순서에 따라 그룹 내 하위 요소를 반환합니다. | |
지정된 정렬 순서에 따라 그룹 내 하위 n 개 요소의 집계를 반환합니다. | |
그룹 내 첫 n 개 요소의 집계를 반환합니다. $firstN 배열 연산자와는 다릅니다. | |
배열의 시작에서부터 지정된 수의 요소를 반환합니다. $firstN 축적자와 구별됩니다. | |
그룹 내 마지막 n 개 요소의 집계를 반환합니다. $lastN 배열 연산자와 다릅니다. | |
배열의 끝에서부터 지정된 수의 요소를 반환합니다. $lastN 축적자와 구별됩니다. | |
마지막 관찰이 이월되었습니다. 창의 | |
그룹 내 최댓값을 가진 n 개 요소의 집계를 반환합니다. $maxN 배열 연산자와는 다릅니다. | |
배열에서 가장 큰 값 n 개를 반환합니다. $maxN 축적자와 구별됩니다. | |
그룹 내 최솟값을 가진 n 개 요소의 집계를 반환합니다. $minN 배열 연산자와는 다릅니다. | |
배열에서 가장 작은 값 n 개를 반환합니다. $minN 축적자와 구별됩니다. | |
요소를 기준으로 배열을 정렬합니다. | |
지정된 정렬 순서에 따라 그룹 내 최상위 요소를 반환합니다. top 명령과는 다릅니다. | |
지정된 정렬 순서에 따라 그룹 내 상위 n 개 요소의 집계를 반환합니다. | |
$lookup
및 $graphLookup
(샤드 컬렉션 포함)
MongoDB 5.1부터 $lookup
및 $graphLookup
집계 단계는 from
매개 변수에서 샤딩된 컬렉션을 지원합니다.
이전 버전의 MongoDB에서는 $lookup
및 $graphLookup
이 샤딩되지 않은 from
컬렉션에만 허용되었습니다.
샤딩된 컬렉션을 대상으로 하는 동안 트랜잭션 내에서 $graphLookup
단계를 사용할 수 없습니다.
변경 스트림
최적화된 Change Streams
MongoDB 5.1부터는Change Streams이 최적화되어 자원을 더 효율적으로 사용하고 일부 집계 파이프라인 단계를 더 빠르게 실행할 수 있습니다.
wallTime
변경 스트림 출력 필드
MongoDB 6.0부터 변경 스트림 출력에는 데이터베이스 작업의 서버 날짜 및 시간을 포함하는 새로운 wallTime
필드가 있습니다.
전후 이미지를 포함하는 문서의 Change Streams
MongoDB 6.0부터 변경 스트림을 사용하여 변경 전후의 문서 버전(문서 사전 및 사후 이미지) 을 출력할 수 있습니다. 문서의 사전 및 사후 이미지를 사용한 Change Streams에서 예시를 참조하세요.
변경 스트림 확장 이벤트
MongoDB 6.0부터는 변경 스트림이 인덱스 생성이나 컬렉션 삭제와 같은 DDL 작업 관련 추가적인 변경 이벤트를 표시할 수 있습니다.
자세한 내용은 확장된 이벤트를 참조하세요.
필터
MongoDB 6.0부터는 가능한 경우, 이전 릴리스보다 더 이른 변경 스트림에 매치 필터를 적용합니다. 이렇게 하면 성능이 향상됩니다. 그러나 필터가 좁게 정의된 경우, 이전 버전에서 성공한 작업이 6.0에서는 실패할 수 있습니다.
클러스터 관리
클러스터 서버 매개 변수
MongoDB 6.0부터 자체 관리형 배포를 위해 클러스터 매개 변수를 사용하여 복제본 세트 또는 샤딩된 클러스터의 모든 노드에 대한 구성 옵션을 수정하고 검색할 수 있습니다. setClusterParameter
를 사용해 클러스터 전반의 옵션을 수정하고 getClusterParameter
를 사용해 클러스터 매개 변수 값을 검색할 수 있습니다.
Connection Pool 매개 변수
MongoDB 6.0부터는 ShardingTaskExecutorPoolMinSizeForConfigServers
와 ShardingTaskExecutorPoolMaxSizeForConfigServers
를 사용해 config 서버의 샤딩 TaskExecutor 연결 풀의 최소 크기와 최대 크기를 설정할 수 있습니다.
changeStreamOptions
클러스터 매개 변수
MongoDB 6.0부터는 changeStreamOptions
를 사용해 변경 스트림 전후 이미지의 보존 정책을 제어할 수 있습니다.
internalSessionsReapThreshold
Parameter
MongoDB 6.0부터는 새롭게 도입된 internalSessionsReapThreshold
매개 변수를 사용해 내부 세션 메타데이터 삭제를 위한 세션 제한을 설정할 수 있습니다.
여러 중재자가 지원되지 않음
MongoDB 5.3부터는 복제본 세트의 다중 중재자 지원이 기본적으로 비활성화됩니다. 여러 중재자에 대한 지원을 활성화하려면 allowMultipleArbiters
매개변수로 각 노드를 시작합니다.
클러스터형 컬렉션
MongoDB 5.3에서 시작하면, 클러스터형 컬렉션을 생성할 수 있습니다.
클러스터형 컬렉션은 인덱스된 문서를 인덱스 사양과 동일한 WiredTiger 파일에 저장합니다. 컬렉션의 문서와 인덱스를 같은 파일에 저장하면 일반 인덱스에 비해 스토리지 및 성능 측면에서 이점이 있습니다.
클러스터된 컬렉션은 클러스터된 인덱스를 사용하여 생성됩니다. 클러스터형 인덱스는 문서가 저장되는 순서를 지정합니다.
클러스터형 컬렉션을 만드는 방법은 예시를 참조하세요.
일반 컬렉션과 비교한 이점에 대한 자세한 내용은 클러스터형 컬렉션을 .
Indexes
MongoDB 5.1부터 collMod
데이터베이스 명령을 사용하여 기존 단일 필드 비TTL 인덱스에 expireAfterSeconds
옵션을 추가할 수 있습니다.
MongoDB 6.0부터는collMod
명령에 prepareUnique
와 unique
옵션을 사용해 기존의 표준 인덱스를 고유 인덱스로 변환할 수 있습니다.
부분 인덱스
MongoDB 6.0부터는 연산자 $in
과 $or
를 사용해 부분 인덱스를 생성할 수 있습니다. partialFilterExpression
최대 깊이 또한 2에서 4로 확장되었습니다. 이제 최상위가 아닌 수준에서도 연산자 $and
와 $or
를 사용할 수 있습니다.
설치
SELinux 정책
MongoDB 5.1부터 다음 항목에 새로운 SE Linux 정책이 적용됩니다.
MongoDB Enterprise 서버
MongoDB Community Edition Server
Red Hat Linux에서 실행됩니다. SELinux 정책은 rpm
설치 프로그램 패키지를 사용하는 기본 설치에 사용됩니다.
복제본 세트
여러 중재자가 지원되지 않음
MongoDB 5.3부터는 복제본 세트의 다중 중재자 지원이 기본적으로 비활성화됩니다. 여러 중재자에 대한 지원을 활성화하려면 allowMultipleArbiters
매개변수로 각 노드를 시작합니다.
initialSyncMethod
Parameter
MongoDB 5.2부터는 initialSyncMethod
가 초기 동기화가 논리적 초기 동기화인지 아니면파일 복사본 기반 초기 동기화인지를 결정합니다.
initialSyncMethod
MongoDB Enterprise 서버에서만 사용할 수 있습니다.
세컨더리 Oplog 배치 지연 지정
MongoDB 6.0부터는 oplogBatchDelayMillis
서버 매개 변수를 사용해 세컨더리에서 oplog 배치의 쓰기 지연을 지정할 수 있습니다. 짧은 oplog 배치 지연을 추가하면 세컨더리의 IOPS를 줄일 수 있지만, 쓰기 고려"majority"
가 설정된 쓰기의 지연 시간은 늘어납니다.
자세한 내용은 oplogBatchDelayMillis
를 참조하세요.
보안
감사 로그 암호화
MongoDB 6.0 Enterprise부터는 MongoDB 감사 로그를 암호화할 수 있습니다.
감사 로그를 구성하려면 감사 로그를 참조하세요.
샤딩
분산 정책 변경
MongoDB 6.0.3부터 샤딩된 클러스터의 데이터는 청크 수가 아닌 데이터 크기를 기준으로 분산됩니다. 샤딩된 클러스터 데이터 배포 동작에서 다음과 같은 중요한 변경 사항에 유의하세요.
밸런서는 청크가 아닌 데이터 범위를 분산합니다. 밸런싱 정책은 청크 분산보다는 데이터 분산의 균일성을 추구합니다.
청크는 자동 분할의 대상이 아닙니다. 대신 청크는 샤드 간에 이동할 때만 분할됩니다.
이제 청크를 범위라고 합니다.
moveRange
moveChunk
를 대체했습니다.
기본 청크 크기가 64MB에서 128MB로 증가
MongoDB 5.2부터 기본 청크 크기는 128MB입니다. 이전 버전 MongoDB의 기본 청크 크기는 64MB입니다.
enableSharding
더 이상 필요하지 않음
MongoDB 6.0부터는 컬렉션을 샤드하는 데 더 이상 enableSharding
명령이 필요하지 않습니다.
조각 모음 상태 모니터링
MongoDB 5.3부터 balancerCollectionStatus
명령은 청크 조각 모음을 거치는 네임스페이스에서 실행될 때 자세한 정보를 반환합니다. 출력에는 현재 조각 모음 단계와 처리해야 할 청크 수가 포함됩니다.
예시 출력을 보려면 진행 중인 조각 모음 프로세스를 참조하세요.
슬롯 기반 쿼리 실행 엔진
MongoDB 5.1부터는 MongoDB가 슬롯 기반 쿼리 실행 엔진이라 불리는 새로운 쿼리 실행 엔진을 사용합니다. 슬롯 기반 쿼리 실행 엔진을 사용하는 경우 쿼리 설명 계획 출력에 새로운 필드가 포함됩니다.
가능하면 새로운 쿼리 실행 엔진이 사용됩니다.
새로운 쿼리 실행 엔진을 사용하는 경우 쿼리 설명 계획 출력에 새로운 필드가 포함됩니다.
슬롯 기반 쿼리 실행 엔진은 및 $group
$lookup
단계를 실행할 수 있습니다.
버전 6.0부터는 특정 요건이 충족될 경우 MongoDB가 슬롯 기반 쿼리 실행 엔진을 사용해 적격한 $group
및 $lookup
단계를 실행합니다.
자세한 내용은 슬롯 기반 쿼리 실행 엔진 파이프라인 최적화를 참조하세요.
슬롯 기반 쿼리 실행 엔진 계획 캐시 크기 설정
planCacheSize
매개 변수를 사용해 새 쿼리 엔진에 적용할 계획 캐시 크기를 설정할 수 있습니다.
계획 캐시 크기를 늘리면 쿼리 플래너 에 캐시된 계획 캐시 쿼리 형태 가 더 많이 추가됩니다. 이렇게 하면 쿼리 성능이 향상될 수 있지만 메모리 사용량이 증가합니다.
Stable API
다음 섹션에서는 MongoDB 6.0에 도입된 Stable API에 추가된 사항을 설명합니다.
Stable API에서 사용할 수 있는 데이터베이스 명령의 전체 목록을 보려면 Stable API 변경 로그를 참조하세요.
데이터베이스 명령
MongoDB 6.0부터는 Stable API에서 다음과 같은 데이터베이스 명령이 지원됩니다.
명령 | 설명 | Stable API 버전 |
---|---|---|
컬렉션 또는 뷰에 있는 문서 수를 계산합니다. (MongoDB 5.0.9부터는 5.0 시리즈 배포를 위한 Stable API에서도 사용할 수 있습니다.) | V1 |
집계 단계 및 연산자
MongoDB 6.0부터 Stable API에서 지원되는 집계 단계 및 연산자는 다음과 같습니다.
무대 또는 운영자 | 설명 | Stable API 버전 |
---|---|---|
지정된 정렬 순서에 따라 그룹 내 최하위 요소를 반환합니다. | V1 | |
지정된 정렬 순서에 따라 그룹 내 하위 n 개 요소의 집계를 반환합니다. | V1 | |
Date() 객체를 지정된 시간 단위만큼 증가시킵니다. | V1 | |
두 날짜의 차이를 반환합니다. | V1 | |
Date() 객체를 지정된 시간 단위만큼 감소시킵니다. | V1 | |
날짜를 자릅니다. | V1 | |
필드의 특정 값이 누락된 문서 시퀀스에서 새 문서를 만듭니다. | V1 | |
$firstN (집계 누산기) | 그룹 내 첫 n 개 요소의 집계를 반환합니다. | V1 |
$firstN (배열 연산자) | 배열의 시작에서부터 지정된 수의 요소를 반환합니다. | V1 |
문서에서 지정된 필드의 값을 반환합니다. | V1 | |
$lastN (집계 누산기) | 그룹 내 마지막 n 개 요소의 집계를 반환합니다. | V1 |
$lastN (배열 연산자) | 배열의 끝에서부터 지정된 수의 요소를 반환합니다. | V1 |
마지막 관찰이 이월되었습니다. 창의 | V1 | |
$maxN (집계 누산기) | 그룹 내 최댓값 n 개 요소의 집계를 반환합니다. | V1 |
$maxN (배열 연산자) | 배열에서 가장 큰 값 n 개를 반환합니다. | V1 |
$minN (집계 누산기) | 그룹 내 최솟값 n 개 요소의 집계를 반환합니다. | V1 |
$minN (배열 연산자) | 배열에서 가장 작은 값 n 개를 반환합니다. | V1 |
문서에서 지정된 필드를 추가, 업데이트 또는 제거합니다. | V1 | |
컬렉션에 있는 특정 범위의 문서(창이라고 함)에 대해 작업을 수행하고 선택한 창 연산자를 기반으로 결과를 반환합니다. | V1 | |
요소를 기준으로 배열을 정렬합니다. | V1 | |
지정된 정렬 순서에 따라 그룹 내 최상위 요소를 반환합니다. | V1 | |
지정된 정렬 순서에 따라 그룹 내 상위 n 개 요소의 집계를 반환합니다. | V1 | |
V1 | ||
V1 |
창 연산자
MongoDB 6.0부터 Stable API에서 다음과 같은 창 연산자가 지원됩니다.
창 연산자 | 설명 | Stable API 버전 |
---|---|---|
각 문서에 표현식을 적용한 결과로 생성되는 모든 고유 값의 배열을 반환합니다. | V1 | |
지정된 표현식의 평균을 반환합니다. 숫자가 아닌 값은 무시합니다. | V1 | |
그룹 또는 창에 있는 문서 수를 반환합니다. | V1 | |
V1 | ||
V1 | ||
$setWindowFields 단계 파티션에서 다른 문서를 기준으로 한 문서 위치(순위라고 함)를 반환합니다. 순위에는 격차가 없습니다. 동률은 같은 순위를 받습니다. | V1 | |
지정된 창 내의 평균 변화율을 반환합니다. | V1 | |
$setWindowFields 단계 파티션에서 문서의 위치(문서 번호라고도 함)를 반환합니다. 동률은 인접한 서로 다른 문서 번호를 받습니다. | V1 | |
V1 | ||
V1 | ||
곡선 아래 면적의 근사값을 반환합니다. | V1 | |
V1 | ||
마지막 관찰이 이월되었습니다. 창의 | V1 | |
각 문서에 표현식을 적용한 결과로 생성되는 최대값을 반환합니다. | V1 | |
각 문서에 표현식을 적용한 결과로 생성되는 최소값을 반환합니다. | V1 | |
각 문서에 표현식을 적용한 결과로 생성되는 값의 배열을 반환합니다. | V1 | |
$setWindowFields 단계 파티션의 다른 문서를 기준으로 문서 위치(순위라고 함)를 반환합니다 . | V1 | |
V1 | ||
각 문서에 숫자 표현식을 적용한 결과로 얻은 모집단 표준 편차를 반환합니다. | V1 | |
각 문서에 숫자 표현식을 적용한 결과로 얻은 샘플 표준 편차를 반환합니다. | V1 | |
각 문서에 숫자 표현식을 적용한 결과로 얻은 합계를 반환합니다. | V1 |
Time Series 컬렉션
다음 섹션에서는 컬렉션의 개선 사항 및 새로운 기능을 설명합니다.
샤딩된 시계열 컬렉션
MongoDB 5.1은 샤드 시계열 컬렉션에 대한 지원을 제공합니다.
참조:
샤딩된 Time Series 세분성
MongoDB 6.0부터는 샤딩된 Time Series 컬렉션의 세분성을 수정할 수 있습니다.
업데이트 및 삭제
MongoDB 5.1부터 Time Series 컬렉션은 제한적으로 업데이트 및 삭제 작업을 지원합니다.
시계열의 열 압축
MongoDB 5.2부터 시계열 컬렉션은 열 압축을 사용합니다. 열 압축은 여러 가지 혁신 기능을 추가하여 실질적인 압축률을 크게 개선하고, 디스크의 전체 데이터 저장 공간을 줄이며, 읽기 성능을 향상시킵니다.
MongoDB 6.0부터 배열도 시계열 컬럼 압축의 일부로 압축됩니다.
지원 대상 $geoNear
MongoDB 5.3부터 시계열 컬렉션의 $geoNear
모든 필드에서 파이프라인 연산자를 사용할 수 있습니다.
추가적인 보조 인덱스 유형
MongoDB 6.0 부터는 time series 컬렉션에서 다음 작업을 수행할 수 있습니다.
정렬 작업에서 보조 인덱스 사용
시계열 컬렉션에서 정렬 작업 시에 인덱스를 사용해 성능을 향상할 수 있습니다. 자세한 내용 및 예는 보조 인덱스를 사용하여 정렬 성능 향상을 참조하세요.
일반 개선 사항
OpenSSL3 FIPS 지원
MongoDB 6.0.7부터 FIPS 모드는 다음 운영 체제에서 OpenSSL3을 지원합니다.
Ubuntu 22.04
RHEL 9
Amazon Linux 2023
Starting in MongoDB 8.0, FIPS 모드 는 Amazon Linux 2023.3 용 OpenSSL3 를 지원합니다.
고정 사이즈 컬렉션 개선
MongoDB 6.0부터는 collMod
명령을 사용해 고정 사이즈 컬렉션의 최대 크기를 바이트 단위 또는 문서 수 단위로 변경할 수 있습니다. 자세한 내용은 고정 사이즈 컬렉션 크기 조정을 참조하세요.
numOrphanDocs
collStats 명령에 필드 추가
MongoDB 6.0부터는 collStats outpt에 컬렉션 내 고아 문서의 수를 보여주는 collStats.numOrphanDocs
필드가 포함됩니다.
출력에서 포함된 필드 제외 serverStatus
MongoDB 6.0(및 5.0.9)부터 serverStatus
출력에서 임베딩된 필드를 제외할 수 있습니다.
연결
MongoDB 6.0부터는 Mongo()
연결 객체에 다음과 같은 새로운 메서드가 추가되었습니다.
Mongo.getWriteConcern()
은 쓰기 고려를 반환합니다.Mongo.setWriteConcern()
은 쓰기 고려를 설정합니다.
진단 역추적 생성 지원 arm64
MongoDB 6.0(및 5.0.10)부터 arm64
에서 진단 역추적 생성이 지원됩니다.
캐시된 LDAP 사용자 정보에 대한 새로 고침 간격 구성
MongoDB 5.2부터는 다음과 같은 새로운 서버 매개 변수를 사용해 캐시된 LDAP 사용자 정보의 새로 고침 간격을 구성할 수 있습니다.
MongoDB 5.2부터 LDAP 서버에서 검색된 캐시된 사용자 정보의 업데이트 간격은 ldapShouldRefreshUserCacheEntries
에 따라 달라집니다.
true인 경우
ldapUserCacheRefreshInterval
을 사용하세요.false인 경우
ldapUserCacheInvalidationInterval
을 사용하세요.
Explain 결과에서 $group
단계 지원
MongoDB 부터 5.2 $group
결과 설명GROUP
은 필드 stage
에서 그룹 키에 따라 문서를 그룹으로 분리하는 단계( )를 지원 합니다.
호환성에 영향을 미치는 변경 사항
일부 변경 사항은 호환성에 영향을 줄 수 있으며 사용자가 조치를 취해야 할 수 있습니다. 호환성 변경 사항에 대한 자세한 목록은 MongoDB 6.0의 호환성 변경 사항을 참조하세요.
업그레이드 절차
중요
기능 호환성 버전
5.0 배포에서 MongoDB 6.0으로 업그레이드하려면 5.0 배포에 5.0
로 설정된 featureCompatibilityVersion
이 있어야 합니다. 버전을 확인하려면 다음을 입력하세요.
db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
MongoDB 6.0으로 업그레이드하는 방법은 사용 중인 MongoDB 배포 관련 업그레이드 지침을 참조하세요.
6.0로 업그레이드하는 방법에 대한 지침이 필요한 경우에 대비하여 MongoDB 전문 서비스 팀은 MongoDB 애플리케이션에 지장을 주지 않고 원활하게 전환할 수 있도록 주요 버전 업그레이드 지원을 제공합니다. 자세한 내용은 MongoDB 컨설팅을 참조하세요.
다운그레이드 고려 사항
MongoDB는 단일 버전 다운그레이드만 지원합니다. 현재 릴리스보다 이전 버전인 릴리스로 다운그레이드할 수 없습니다.
예를 들어, 6.0 시리즈를 5.0 시리즈 배포로 다운그레이드할 수 있습니다. 하지만 5.0 시리즈 배포를 4.4 시리즈 배포로 한 단계 더 다운그레이드하는 것은 지원되지 않습니다.
다운로드
MongoDB 6.0을 다운로드하려면 MongoDB 다운로드 센터로 이동하세요.
알려진 문제
이 섹션에서는 MongoDB 6.0의 알려진 문제와 해결 상태를 설명합니다.
버전 | 이슈 | 상태 |
---|---|---|
6.0.0 | SERVER-68062: $GeoNear를 사용하는 다단계 집계는 제약 조건을 위반할 수 있습니다. | 6.0.1에서 해결됨. |
이슈 신고하기
문제를 보고하려면 MongoDB GitHub 리포지토리에서 MongoDB 서버 또는 관련 프로젝트 중 하나에 대해 JIRA 티켓을 제출하는 방법을 참조하세요.