Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ / / /

$jsonSchema

이 페이지의 내용

  • 정의
  • 구문
  • JSON Schema
  • 예시
$jsonSchema

$jsonSchema 연산자는 지정된 JSON Schema에 부합하는 문서와 일치합니다.

$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" }
}
}
}
}
}

MongoDB는 핵심 사양유효성 검사 사양을 비롯한 JSON schema 초안 4를 지원하지만, 몇 가지 차이점이 있습니다. 자세한 내용은 확장생략을 참조하세요.

JSON Schema에 대한 자세한 내용은 공식 웹사이트를 참조하세요.

JSON Schema에서 지정할 수 있는 키워드는 다음과 같습니다.

참고

MongoDB는 JSON Schema에서 사용할 수 있는 키워드의 하위 세트를 구현합니다. 누락된 항목의 전체 목록은 누락 항목을 참조하세요.

Keyword
유형
정의
행동

additionalItems

배열

부울 또는 객체

객체인 경우 유효한 JSON Schema여야 합니다.

additionalProperties

객체

부울 또는 객체

true(이)면 추가 필드를 사용할 수 있습니다. false(이)면 그렇지 않습니다. 유효한 JSON Schema 객체가 지정된 경우에는 추가 필드에서 해당 스키마를 대상으로 유효성을 검사해야 합니다.

기본값은 true입니다.

allOf

모든 유형

JSON Schema 객체 배열

필드가 지정된 모든 스키마와 일치해야 합니다.

anyOf

모든 유형

JSON Schema 객체 배열

필드가 지정된 스키마 중 1개 이상과 일치해야 합니다.

bsonType

모든 유형

문자열 별칭 또는 문자열 별칭 배열

$type 연산자에 사용된 것과 동일한 문자열 별칭을 허용합니다.

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 구현 기능은 "정수" 유형을 지원하지 않습니다. 대신 bsonType 키워드와 "int" 유형 또는 "long" 유형을 사용하세요.

uniqueItems

배열

부울

true(참)인 경우 배열의 각 항목은 고유해야 합니다. 그렇지 않은 경우에는 고유성 제약 조건이 적용되지 않습니다.

MongoDB의 JSON Schema 구현 기능에는 $jsonSchema 연산자의 모든 BSON 유형을 사용할 수 있게 해 주는 bsonType 키워드를 추가하는 기능이 포함되어 있습니다. bsonType은(는) $type 연산자에 사용된 것과 동일한 문자열 별칭을 허용합니다.

MongoDB의 JSON Schema 구현 기능은 다음을 지원하지 않습니다.

  • JSON schema 사양 초안 4의 하이퍼텍스트 정의

  • 키워드:

    • $ref

    • $schema

    • default

    • definitions

    • format

    • id

  • integer 유형입니다. BSON 유형 int 또는 long은(는) bsonType 키워드와 함께 사용해야 합니다.

  • JSON Schema(JSON 참고 자료 및 JSON 포인터 사용 등)의 하이퍼미디어 속성 및 연결 속성입니다.

  • 알 수 없는 키워드입니다.

$jsonSchema을(를) 사용하는 예시를 보려면 다음 페이지를 참조하세요.

돌아가기

$expr

이 페이지의 내용