문서 메뉴
문서 홈
/
MongoDB 매뉴얼
/ / / /

$jsonSchema

이 페이지의 내용

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

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

$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 스키마에서 지정할 수 있는 키워드는 다음과 같습니다.

참고

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

키워드
유형
정의
행동
additionalItems
배열
부울 또는 객체
객체인 경우 유효한 JSON 스키마여야 합니다.
additionalProperties
개체
부울 또는 객체

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

기본값은 true입니다.

allOf
모든 유형
JSON 스키마 객체 배열
필드가 지정된 모든 스키마와 일치해야 합니다.
anyOf
모든 유형
JSON 스키마 객체 배열
필드가 지정된 스키마 중 1개 이상과 일치해야 합니다.
bsonType
모든 유형
문자열 별칭 또는 문자열 별칭 배열
연산자에 $type 사용된 것과 동일한 문자열 별칭 을 허용합니다.
종속성
개체
객체
필드 또는 스키마 종속성을 설명합니다.
description
N/A
문자열
스키마를 설명하며 유효성 검사에 영향을 주지 않는 문자열입니다. MongoDB 5.1부터는 description 필드가 지정된 경우, 문서가 유효성 검사에 실패하면 MongoDB에 해당 오류 출력의 description이(가) 포함됩니다.
열거형
모든 유형
값 배열
필드의 사용 가능한 값을 모두 열거합니다.
exclusiveMaximum
숫자
부울
true(참)이고 필드가 숫자인 경우 maximum은(는) 배타적 최댓값이 됩니다. 그렇지 않은 경우에는 포괄적 최댓값이 됩니다.
exclusiveMinimum
숫자
부울
true(참)인 경우 minimum은(는) 배타적 최솟값입니다. 그렇지 않은 경우에는 포괄적 최솟값이 됩니다.
항목
배열
객체 또는 배열
유효한 JSON 스키마이거나 유효한 JSON 스키마의 배열이어야 합니다.
maximum
숫자
숫자
필드의 최댓값을 나타냅니다.
maxItems
배열
integer
배열의 최대 길이를 나타냅니다.
maxLength
strings
integer
필드의 최대 길이를 나타냅니다.
maxProperties
개체
integer
필드의 최대 속성 수를 나타냅니다.
minimum
숫자
숫자
필드의 최솟값을 나타냅니다.
minItems
배열
integer
배열의 최소 길이를 나타냅니다.
minLength
strings
integer
필드의 최소 길이를 나타냅니다.
minProperties
개체
integer
필드의 최소 속성 수를 나타냅니다.
multipleOf
숫자
숫자
필드가 이 값의 배수여야 합니다.
not
모든 유형
JSON 스키마 객체
필드가 스키마와 일치하지 않아야 합니다.
oneOf
모든 유형
JSON 스키마 객체 배열
필드가 지정된 스키마 중 1개와 정확히 일치해야 합니다.
패턴
strings
정규 표현식이 포함된 문자열
필드가 정규 표현식과 일치해야 합니다.
patternProperties
개체
객체
properties 요건 외에도 이 객체의 각 속성 이름이 유효한 정규 표현식이어야 합니다.
속성
개체
객체
각 값이 유효한 JSON 스키마 객체이기도 한 유효한 JSON 스키마입니다.
필수
개체
고유 문자열 배열
배열에 지정된 모든 요소가 객체의 속성 세트에 포함되어야 합니다.
제목
N/A
문자열
효과가 없는 서술형 제목 문자열입니다.
유형
모든 유형
문자열 또는 고유 문자열 배열

필드의 사용 가능한 JSON 유형을 열거합니다. 사용 가능한 유형은 "객체", "배열", "숫자", "부울", "문자열", "null"입니다.

MongoDB의 JSON 스키마 구현 기능은 "정수" 유형을 지원하지 않습니다. 대신 bsonType 키워드와 "int" 유형 또는 "long" 유형을 사용하세요.

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

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

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

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

  • 키워드:

    • $ref

    • $schema

    • default

    • definitions

    • format

    • id

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

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

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

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

← $expr
$mod →

이 페이지의 내용