드라이버가 포함된 MongoDB
설명
버전 6.2에서 변경되었습니다.
db.collection.validate(<documents>)컬렉션의 유효성을 검사합니다. 이 메서드는 정확성을 위해 컬렉션 데이터와 인덱스를 검색하고 결과를 반환합니다. 출력에 대한 자세한 내용은 출력 유효성 검사를 참조하세요.
버전 5.0
db.collection.validate()부터 메서드는 컬렉션 의 불일치를 수정할 수도 있습니다.인덱스 불일치에는 다음이 포함됩니다.
인덱스는 멀티키이지만 멀티키 필드는 없습니다.
인덱스에는 멀티키가 아닌 필드를 포함하는 MultiKeyPath가 있습니다.
인덱스에는 MultiKeyPath가 없지만 멀티키 문서가 있습니다. (3.4 이전에 빌드된 인덱스의 경우)
명령으로 불일치가 감지되면 경고가 반환되고 인덱스 의 복구 플래그가(으)로
db.collection.validate()true설정하다 됩니다.는 컬렉션의 스키마
db.collection.validate()유효성 검사 규칙을 위반하는 모든 문서의 유효성도 검사합니다.db.collection.validate()메서드는validate명령을 감싸는 래퍼입니다.
호환성
이 메서드는 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.
- MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스
참고
이 명령은 모든 MongoDB Atlas 클러스터에서 지원됩니다. 모든 명령에 대한 Atlas 지원에 관해 자세히 알아보려면 지원되지 않는 명령을 참조하세요.
MongoDB Enterprise: MongoDB의 구독 기반 자체 관리 버전
MongoDB Community: MongoDB의 소스 사용 가능 무료 자체 관리 버전
구문
메서드의 구문은 다음과 db.collection.validate() 같습니다.
db.collection.validate( { full: <boolean>, // Optional repair: <boolean>, // Optional, added in MongoDB 5.0 checkBSONConformance: <boolean> // Optional, added in MongoDB 6.2 } )
매개변수
메서드는 필드와 함께 다음과 같은 선택적 문서 매개변수를 사용할 수 db.collection.validate() 있습니다.
필드 | 유형 | 설명 |
|---|---|---|
부울 | 선택 사항입니다. 명령이 더 느리지만 더 철저한 검사를 수행할지, 아니면 더 빠르지만 덜 철저한 검사를 수행할지를 정하는 플래그입니다.
기본값은 WiredTiger 스토리지 엔진 의 경우 | |
부울 | 선택 사항입니다. 명령이 복구를 수행할지 여부를 결정하는 플래그입니다.
기본값은 복구는 독립형 노드에서만 실행할 수 있습니다. 수리를 통해 다음 문제가 해결됩니다.
자세한 내용은 의 옵션을 버전 5.0의 신규 항목입니다. | |
부울 | 선택 사항입니다.
버전 6.2에 추가 되었습니다. |
행동
성능
db.collection.validate() 메서드는 잠재적으로 리소스 많이 사용하며, 특히 대규모 데이터 세트에서 MongoDB 인스턴스 성능에 영향 수 있습니다.
메서드는 db.collection.validate() 컬렉션 에 대한 배타 락 얻습니다. 이렇게 하면 작업이 완료될 때까지 컬렉션 에 대한 모든 읽기 및 쓰기가 차단 됩니다. 세컨더리 에서 실행 작업은 완료될 때까지 해당 세컨더리 의 다른 모든 작업을 차단 수 있습니다.
경고
유효성 검사에는 읽기를 제공하는 프라이머리 및 세컨더리의 성능에 영향을 미치는 배타 락 요구 사항이 있습니다.db.collection.validate() 읽기 또는 쓰기를 제공하지 않는 노드에서만 를 실행 좋습니다.
데이터 보유자의 대다수인 프라이머리(비중재자)에 대한 영향을 최소화하려면 클러스터에서 투표 멤버를 사용할 수 있어야 하며 복제 지연이 심하지 않아야 합니다.
유효성 검사 작업이 클라이언트 애플리케이션에 영향 db.collection.validate() 최소화하려면 읽기 요청을 제공하지 않는 세컨더리 노드 에서 를 실행 . 메서드를 실행 하여 현재 프라이머리 노드 세컨더리 노드 로 변환할 수 있습니다.rs.stepDown()
작업을 클라이언트 트래픽에서 완전히 격리하려면 다음 옵션 중 하나를 선택합니다.db.collection.validate()
롤링 유지 관리 절차에 따라 복제본 세트 멤버를 격리하여 클러스터에서 일시적으로 제거합니다.
데이터 처리량 지표
$currentOp 및 currentOp 명령에는 진행 중인 유효성 검증 작업에 대한 dataThroughputAverage 및 dataThroughputLastSecond 정보가 포함됩니다.
유효성 검사 작업에 대한 로그 메시지에는 dataThroughputAverage 및 dataThroughputLastSecond 정보가 포함됩니다.
컬렉션 유효성 검사 개선 사항
MongoDB 부터 6.2 validate 명령과 db.collection.validate() 메서드는 다음과 같습니다.
컬렉션을 확인하여 BSON 문서가 BSON 사양을 준수하는지 확인하십시오.
time series 컬렉션에 내부 데이터 불일치가 있는지 확인합니다.
포괄적인 BSON 검사를 가능하게 하는 새 옵션
checkBSONConformance이(가) 있습니다.
예시
기본 유효성 검사 설정(특히 전체: false)을 사용하여
myCollection컬렉션의 유효성을 검사합니다.db.myCollection.validate() db.myCollection.validate({ }) db.myCollection.validate( { full: false } ) 컬렉션
myCollection의 전체 유효성 검사를 수행하려면 full: true를 지정합니다.db.myCollection.validate( { full: true } ) 컬렉션
myCollection을 복구하려면 repair: true를 지정합니다.db.myCollection.validate( { repair: true } ) myCollection에서 추가 BSON 적합성 검사를 수행하려면 checkBSONConformance: true를 지정합니다.db.myCollection.validate( { checkBSONConformance: true } )
출력에 관한 자세한 내용은 출력 유효성 검사에서 확인하세요.