스키마에 대한 유효성 검사 규칙 설정
이 페이지의 내용
유효성 검사 탭
Validation 탭에서는 컬렉션에 대한 스키마 유효성 검사 규칙 을 관리할 수 있습니다.
스키마 유효성 검사는 컬렉션의 모든 문서가 특정 형태를 따르거나 필드에 지정된 범위의 값만 허용하는 등 정의된 규칙 세트를 따르도록 합니다.
유효성 검사 규칙
버전 1.35.1에서 업데이트됨
유효성 검사 편집기는 JSON Schema 유효성 검사 및 쿼리 연산자를 사용한 쿼리 표현식 유효성 검사를 지원합니다. Update 버튼을 클릭하면 Compass가 업데이트되어 컬렉션에서 유효성 검사를 통과한 문서와 실패한 문서를 표시합니다.
JSON 스키마 유효성 검사
JSON Schema 유효성 검사를 지정하려면 $jsonSchema 연산자를 사용합니다.
{ $jsonSchema: { required: ['customer'], // the customer field is required properties: { purchaseMethod: { enum: ['In Store','Online'], description: "can only be either 'In Store' or 'Online'" } } } }
$jsonSchema 연산자는 유효성 검사 규칙을 지정하는 다양한 키워드를 지원합니다. 예를 들면 다음과 같습니다.
required
배열은 문서의 필수 필드를 정의합니다.properties
객체는 특정 문서 필드에 대한- 규칙을 정의합니다.
다음 유효성 검사 예시를 살펴보세요:
{ $jsonSchema: { bsonType: "object", required: [ "name", "year", "major", "gpa", "address.city", "address.street" ], properties: { name: { bsonType: "string", description: "must be a string" }, year: { bsonType: "int", minimum: 2017, maximum: 3017, exclusiveMaximum: false, description: "must be an integer in [ 2017, 3017 ]" }, major: { bsonType: "string", enum: [ "Math", "English", "Computer Science", "History", null ], description: "can only be one of the enum values" }, gpa: { bsonType: [ "double" ], minimum: 0, description: "must be a double" } } } }
이 유효성 검사는 다음을 지정합니다:
사용 가능한 모든 $jsonSchema
키워드는 MongoDB 매뉴얼의 $jsonSchema 페이지를 참조하세요.
쿼리 연산자를 사용한 유효성 검사
$near
, $nearSphere
, $text
, $where
쿼리 연산자를 제외한 쿼리 연산자를 사용하여 유효성 검사를 지정할 수도 있습니다.
{ $or: [ { phone: { $type: "string" } }, { email: { $regex: /@mongodb\.com$/ } }, { status: { $in: [ "Unknown", "Incomplete" ] } } ] }
이 유효성 검사를 사용하려면 다음 중 하나에 해당해야 합니다.
phone
필드는 반드시 BSON type 문자열이어야 하며,email
필드는 정규식/@mongodb\.com$/
또는status
필드는Unknown
또는Incomplete
여야 합니다.
유효성 검사 작업 및 수준
상단에 Validation Action 및 Validation Level을 지정합니다:
유효성 검사 작업은
warn
를 표시하고 유효하지 않은 문서를 허용할지 또는error
를 표시하고 유효하지 않은 문서를 거부할지 결정합니다.유효성 검사 수준은 MongoDB가 기존 문서에 유효성 검사 규칙을 얼마나 엄격하게 적용하는지를 결정합니다.
Strict
유효성 검사는 모든 문서 삽입 및 업데이트에 규칙을 적용합니다.Moderate
유효성 검사는 새 문서와 기존의 유효한 문서에만 규칙을 적용합니다. 기존의 유효하지 않은 문서는 영향을 받지 않습니다.
유효성 검사 작업 및 수준에 대한 자세한 내용은 MongoDB 매뉴얼의 유효성 검사 규칙 지정 을 참조하세요.
제한 사항
Data Lake에 연결되어 있는 경우 Validation 탭을 사용할 수 없습니다.
MongoDB Compass Readonly Edition에서는 유효성 검사 규칙만 볼 수 있습니다. 유효성 검사 규칙을 생성하고 편집하는 것은 허용되지 않습니다.