$jsonSchema
이 페이지의 내용
정의
구문
$jsonSchema
연산자 표현식의 구문은 다음과 같습니다.
{ $jsonSchema: <JSON Schema object> }
여기서 JSON Schema 객체의 형식은 JSON 스키마 표준의 4번 초안에 따라 지정됩니다.
{ <keyword1>: <value1>, ... }
예를 들면 다음과 같습니다.
{ $jsonSchema: { required: [ "name", "major", "gpa", "address" ], properties: { name: { bsonType: "string", description: "must be a string and is required" }, address: { bsonType: "object", required: [ "zipcode" ], properties: { "street": { bsonType: "string" }, "zipcode": { bsonType: "string" } } } } } }
JSON Schema
MongoDB는 핵심 사양과 유효성 검사 사양을 비롯한 JSON schema 초안 4를 지원하지만, 몇 가지 차이점이 있습니다. 자세한 내용은 확장과 생략을 참조하세요.
JSON Schema에 대한 자세한 내용은 공식 웹사이트를 참조하세요.
사용 가능한 키워드
JSON Schema에서 지정할 수 있는 키워드는 다음과 같습니다.
참고
MongoDB는 JSON Schema에서 사용할 수 있는 키워드의 하위 세트를 구현합니다. 누락된 항목의 전체 목록은 누락 항목을 참조하세요.
Keyword | 유형 | 정의 | 행동 |
---|---|---|---|
additionalItems | 배열 | 부울 또는 객체 | 객체인 경우 유효한 JSON Schema여야 합니다. |
additionalProperties | 객체 | 부울 또는 객체 |
기본값은 |
allOf | 모든 유형 | JSON Schema 객체 배열 | 필드가 지정된 모든 스키마와 일치해야 합니다. |
anyOf | 모든 유형 | JSON Schema 객체 배열 | 필드가 지정된 스키마 중 1개 이상과 일치해야 합니다. |
bsonType | 모든 유형 | 문자열 별칭 또는 문자열 별칭 배열 | |
dependencies | 객체 | 객체 | 필드 또는 스키마 종속성을 설명합니다. |
description | N/A | 문자열 | 스키마를 설명하며 유효성 검사에 영향을 주지 않는 문자열입니다. MongoDB 5.1부터는 description 필드가 지정된 경우, 문서가 유효성 검사에 실패하면 MongoDB에 해당 오류 출력의 description 이(가) 포함됩니다. |
열거형 | 모든 유형 | 값 배열 | 필드의 사용 가능한 값을 모두 열거합니다. |
exclusiveMaximum | 숫자 | 부울 | true(참)이고 필드가 숫자인 경우 maximum 은(는) 배타적 최댓값이 됩니다. 그렇지 않은 경우에는 포괄적 최댓값이 됩니다. |
exclusiveMinimum | 숫자 | 부울 | true(참)인 경우 minimum 은(는) 배타적 최솟값입니다. 그렇지 않은 경우에는 포괄적 최솟값이 됩니다. |
항목 | 배열 | 객체 또는 배열 | 유효한 JSON Schema이거나 유효한 JSON Schema의 배열이어야 합니다. |
maximum | 숫자 | 숫자 | 필드의 최댓값을 나타냅니다. |
maxItems | 배열 | integer | 배열의 최대 길이를 나타냅니다. |
maxLength | strings | integer | 필드의 최대 길이를 나타냅니다. |
maxProperties | 객체 | integer | 필드의 최대 속성 수를 나타냅니다. |
minimum | 숫자 | 숫자 | 필드의 최솟값을 나타냅니다. |
minItems | 배열 | integer | 배열의 최소 길이를 나타냅니다. |
minLength | strings | integer | 필드의 최소 길이를 나타냅니다. |
minProperties | 객체 | integer | 필드의 최소 속성 수를 나타냅니다. |
multipleOf | 숫자 | 숫자 | 필드가 이 값의 배수여야 합니다. |
not | 모든 유형 | JSON Schema 객체 | 필드가 스키마와 일치하지 않아야 합니다. |
oneOf | 모든 유형 | JSON Schema 객체 배열 | 필드가 지정된 스키마 중 1개와 정확히 일치해야 합니다. |
패턴 | strings | 정규 표현식이 포함된 문자열 | 필드가 정규 표현식과 일치해야 합니다. |
patternProperties | 객체 | 객체 | properties 요건 외에도 이 객체의 각 속성 이름이 유효한 정규 표현식이어야 합니다. |
속성 | 객체 | 객체 | 각 값이 유효한 JSON Schema 객체이기도 한 유효한 JSON Schema입니다. |
필수 | 객체 | 고유 문자열 배열 | 배열에 지정된 모든 요소가 객체의 속성 세트에 포함되어야 합니다. |
제목 | N/A | 문자열 | 효과가 없는 서술형 제목 문자열입니다. |
유형 | 모든 유형 | 문자열 또는 고유 문자열 배열 | 필드의 사용 가능한 JSON 유형을 열거합니다. 사용 가능한 유형은 "객체", "배열", "숫자", "부울", "문자열", "null"입니다. MongoDB의 JSON Schema 구현 기능은 "정수" 유형을 지원하지 않습니다. 대신 |
uniqueItems | 배열 | 부울 | true(참)인 경우 배열의 각 항목은 고유해야 합니다. 그렇지 않은 경우에는 고유성 제약 조건이 적용되지 않습니다. |
확장 프로그램
MongoDB의 JSON Schema 구현 기능에는 $jsonSchema
연산자의 모든 BSON 유형을 사용할 수 있게 해 주는 bsonType
키워드를 추가하는 기능이 포함되어 있습니다. bsonType
은(는) $type
연산자에 사용된 것과 동일한 문자열 별칭을 허용합니다.
생략
MongoDB의 JSON Schema 구현 기능은 다음을 지원하지 않습니다.
예시
$jsonSchema
을(를) 사용하는 예시를 보려면 다음 페이지를 참조하세요.