스키마에 대한 유효성 검사 규칙 설정
유효성 검사 탭
Validation 탭에서는 컬렉션의 스키마 유효성 검사 규칙을 관리할 수 있습니다.
스키마 유효성 검사는 컬렉션의 모든 문서가 특정 형태를 따르거나 필드에 지정된 범위의 값만 허용하는 등 정의된 규칙 세트를 따르도록 합니다.

유효성 검사 규칙
유효성 검사 편집기는 JSON Schema 유효성 검사 및 쿼리 연산자를 사용한 유효성 검사를 활용하는 쿼리 표현식 유효성 검사를 지원합니다.
JSON Schema 유효성 검사
$jsonSchema 연산자는 유효성 검사 규칙을 지정하는 다양한 키워드를 지원합니다. 예를 들면 다음과 같습니다.
required
배열은 문서의 필수 필드를 정의합니다.properties
객체는 특정 문서 필드에 대한 규칙을 정의합니다.
기존 샘플 데이터를 분석하여 JSON Schema를 생성하려면 유효성 검사 규칙 생성을 참조하세요.
예시
다음 유효성 검사 예시를 살펴보세요:
{ $jsonSchema: { bsonType: "object", required: [ "address", "borough", "name" ], properties: { address: { bsonType: "object", properties: { coord: { bsonType: "array", items: [ { bsonType: "double", minimum: -180, maximum: 180, exclusiveMaximum: false, description: "must be a number in [ -180, 180 ]" }, { bsonType: "double", minimum: -90, maximum: 90, exclusiveMaximum: false, description: "must be a number in [ -90, 90 ]" } ] } }, description: "must be an object" }, borough: { bsonType: "string", enum: [ "Manhattan", "Brooklyn", "Queens", "Bronx", "Staten Island" ], description: "must be one of the enum strings" } } } }
이 유효성 검사는 다음을 지정합니다:
사용 가능한 모든 $jsonSchema
키워드를 보려면 MongoDB 매뉴얼의 $jsonSchema 페이지를 참조하세요.
쿼리 연산자를 사용한 유효성 검사
$near
, $nearSphere
, $text
, $where
쿼리 연산자를 제외한 쿼리 연산자를 사용하여 유효성 검사를 지정할 수도 있습니다.
{ $or: [ { name: { $type: "string" } }, { borough: { bsonType: "string", enum: [ "Manhattan", "Brooklyn", "Queens", "Bronx", "Staten Island" ], description: "must be one of the enum strings" } } ] }
이 유효성 검사를 사용하려면 다음 중 하나에 해당해야 합니다.
name
필드는 반드시 BSON type 문자열이어야 합니다.borough
필드는 열거형 문자열 중 하나여야 합니다.
유효성 검사 작업 및 수준
상단에 Validation Action 및 Validation Level을 지정합니다:
유효성 검사 작업은
warn
를 표시하고 유효하지 않은 문서를 허용할지 또는error
를 표시하고 유효하지 않은 문서를 거부할지 결정합니다.유효성 검사 수준은 MongoDB가 기존 문서에 유효성 검사 규칙을 얼마나 엄격하게 적용하는지를 결정합니다.
Strict
유효성 검사는 모든 문서 삽입 및 업데이트에 규칙을 적용합니다.Moderate
유효성 검사는 새 문서와 기존의 유효한 문서에만 규칙을 적용합니다. 기존의 유효하지 않은 문서는 영향을 받지 않습니다.
유효성 검사 조치 및 수준에 대한 자세한 내용은 MongoDB 매뉴얼의 유효성 검사 규칙 지정을 참조하세요.
시작하기
제한 사항
Atlas Data Federation에 연결되어 있는 경우 Validation 탭을 사용할 수 없습니다.
Compass는 1000개를 초과하는 고유 필드가 있는 스키마의 유효성을 검사할 수 없습니다. 1000개를 초과하는 고유 필드가 있는 스키마의 유효성을 검사하려고 하면 Compass에서 오류를 반환합니다.
MongoDB Compass Readonly Edition에서는 유효성 검사 규칙만 볼 수 있습니다. 유효성 검사 규칙을 생성하고 편집하는 것은 허용되지 않습니다.