Docs Menu
Docs Home
/
Compass
/

스키마에 대한 유효성 검사 규칙 설정

Validation 탭에서는 컬렉션의 스키마 유효성 검사 규칙을 관리할 수 있습니다.

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

유효성 검사 보기
클릭하여 확대

유효성 검사 편집기는 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 ActionValidation Level을 지정합니다:

  • 유효성 검사 작업은 warn를 표시하고 유효하지 않은 문서를 허용할지 또는 error를 표시하고 유효하지 않은 문서를 거부할지 결정합니다.

  • 유효성 검사 수준은 MongoDB가 기존 문서에 유효성 검사 규칙을 얼마나 엄격하게 적용하는지를 결정합니다.

    • Strict 유효성 검사는 모든 문서 삽입 및 업데이트에 규칙을 적용합니다.

    • Moderate 유효성 검사는 새 문서와 기존의 유효한 문서에만 규칙을 적용합니다. 기존의 유효하지 않은 문서는 영향을 받지 않습니다.

유효성 검사 조치 및 수준에 대한 자세한 내용은 MongoDB 매뉴얼의 유효성 검사 규칙 지정을 참조하세요.

Atlas Data Federation에 연결되어 있는 경우 Validation 탭을 사용할 수 없습니다.

Compass는 1000개를 초과하는 고유 필드가 있는 스키마의 유효성을 검사할 수 없습니다. 1000개를 초과하는 고유 필드가 있는 스키마의 유효성을 검사하려고 하면 Compass에서 오류를 반환합니다.

MongoDB Compass Readonly Edition에서는 유효성 검사 규칙만 볼 수 있습니다. 유효성 검사 규칙을 생성하고 편집하는 것은 허용되지 않습니다.

돌아가기

성능 인사이트

이 페이지의 내용