샤딩된 클러스터의 운영 제한 사항
이 페이지의 내용
샤딩 운영 제한
샤드 환경에서 사용할 수 없는 작업
$where
는 $where
함수에서 db
객체에 대한 참조를 허용하지 않습니다. 비 샤드형 컬렉션에서는 이런 일이 흔하지 않습니다.
geoSearch
명령은 샤딩된 환경에서는 지원되지 않습니다.
MongoDB 5.0 이전까지는 $lookup
단계의 from
파라미터에 샤드된 컬렉션을 지정할 수 없습니다.
샤드된 컬렉션의 단일 문서 수정 작업
multi: false
또는 justOne
옵션을 지정하는 분할된 컬렉션에 대해 updateOne()
및 deleteOne()
작업 사용 방법:
하나의 샤드만 대상으로 하는 경우 쿼리 사양에서 부분 샤드 키를 사용할 수 있습니다.
쿼리 사양에서 샤드 키 또는
_id
필드를 제공할 수 있습니다.
findOneAndUpdate()
를 샤드 컬렉션과 함께 사용하려면 쿼리 필터에 샤드 키에 대한 동일성 조건이 포함되어 키와 값을 이러한 형식 중 하나로 비교해야 합니다.
{ key: value } { key: { $eq: value } }
샤드된 컬렉션의 고유 인덱스
고유 인덱스에 전체 샤드 키가 인덱스의 접두사로 포함된 경우를 제외하고, MongoDB는 샤드 간 고유 인덱스를 지원하지 않습니다. 이러한 상황에서 MongoDB는 단일 필드가 아닌 전체 키에 고유성을 적용합니다.
일관적인 인덱스
MongoDB는 샤드 간에 일관적인 인덱스를 보장하지 않습니다. addShard
작업 또는 청크 마이그레이션 중 인덱스 생성은 새 샤드로 전파되지 않을 수 있습니다.
샤딩된 클러스터에서 인덱스가 일관적인지 확인하려면 checkMetadataConsistency
명령을 사용합니다.
db.runCommand( { checkMetadataConsistency: 1, checkIndexes: true } )