Docs Menu
Docs Home
/
Compass
/ /

스키마 내보내기

스키마를 분석한 후 내보낼 수 있습니다. 이 기능은 스키마를 공유하고 컬렉션 간에 스키마를 비교할 때 유용합니다.

아직 스키마를 분석하지 않았다면 스키마를 분석하세요:

1

원하는 컬렉션을 선택하고 Schema 탭을 클릭합니다.

2

Analyze Schema를 클릭합니다.

Compass는 스키마를 분석할 때 컬렉션에서 임의의 문서 하위 집합을 샘플링합니다. 샘플링에 대해 자세히 알아보려면 샘플링을 참조하세요.

스키마 분석이 완료되면 다음 절차에 따라 스키마를 내보내세요.

1
스키마 내보내기 버튼을 보여주는 이미지

Export Schema 버튼이 뷰포트의 왼쪽 상단에 나타납니다.

2

Export JSON Schema 모달에서 내보낼 형식을 선택합니다.

Export JSON Schema modal
클릭하여 확대

스키마 다음 형식으로 내보낼 수 있습니다.

  • 표준 형식

  • MongoDB 형식

  • 확장 형식

3

스키마를 저장할 파일 시스템의 위치를 선택합니다.

표준 형식 스키마 객체에는 다음 필드가 포함되어 있습니다.

속성
데이터 유형
설명

type

문자열 또는 배열

required

문자열 배열

스키마에 표시되어야 하는 필드입니다. 자세한 내용은 공식 JSON 문서의 required를 참조하세요.

properties

객체

각 필드 에 대한 속성입니다. 키는 속성 이름이고 값은 하위 스키마입니다. 자세한 내용은 속성에 대한 공식 JSON Docs 참조하세요.

items

문서

배열 필드의 요소에 대한 메타데이터입니다. 메타데이터는 임베디드 하위 스키마로 나타납니다. 자세한 내용은 공식 JSON 문서의 items를 참조하세요.

이는 가능한 모든 필드의 완전한 목록은 아닙니다. 추가 필드에 대한 자세한 내용은 공식 JSON Schema 사양을 참조하세요.

MongoDB 형식의 스키마 객체에는 다음 필드가 포함되어 있습니다.

속성
데이터 유형
설명

bsonType

문자열 또는 문자열 배열

이 필드의 BSON 유형입니다.

required

문자열 배열

스키마에 표시되어야 하는 필드입니다.

properties

문서

각 필드 에 대한 속성입니다. 키는 속성 이름이고 값은 하위 스키마입니다.

items

문서

배열 필드의 요소에 대한 메타데이터입니다. 메타데이터는 포함된 하위 스키마로 표시됩니다.

이는 가능한 모든 필드의 완전한 목록은 아닙니다. 추가 필드에 대한 자세한 내용은 공식 JSON Schema 사양을 참조하세요.

확장 형식 스키마 객체에는 표준 스키마 필드 외에도 다음 필드가 포함됩니다.

속성
데이터 유형
설명

x-bsonType

문자열 또는 배열

이 필드의 BSON 유형입니다.

x-metadata

문서

필드 에 대한 메타데이터 포함된 문서입니다.

hasDuplicates

부울

true 이 필드 에 단일 값이 여러 번 나타나는 경우 그렇지 않으면 false.

probability

float

임의의 문서에서 필드가 존재할 확률입니다.

count

integer

이 필드가 포함된 샘플의 문서 수입니다.

x-sampleValues

배열

샘플 값은 확장 JSON 입니다. 샘플 값은 처음 100 자로 제한됩니다.

이는 가능한 모든 필드의 완전한 목록은 아닙니다. 추가 필드에 대한 자세한 내용은 공식 JSON Schema 사양을 참조하세요.

Compass는 1000개가 넘는 고유 필드가 포함된 스키마를 내보낼 수 없습니다. 1000개가 넘는 고유 필드가 포함된 스키마를 내보내려고 하면 Compass에서 오류를 반환합니다.

다음 예시 각각 title 필드 와 해당 영화에 대한 고유 정보가 있는 3 문서 컬렉션 사용합니다.

1[
2 {
3 "_id": { "$oid": "573a1390f29313caabcd6223" },
4 "title": "The Poor Little Rich Girl",
5 "plot": "Gwen's family is rich, but her parents ignore her and most of the serv...",
6 "year": 1917,
7 },
8 {
9 "_id": { "$oid": "573a1391f29313caabcd7616" },
10 "title": "Salomè",
11 "plot": "Salome, the daughter of Herodias, seduces her step-father/uncle Herod, ...",
12 "year": 1922,
13 "genres": [ "drama", "horror" ]
14 },
15 {
16 "_id": { "$oid": "573a1392f29313caabcd9c1b" },
17 "title": "Payment Deferred",
18 "year": 1932,
19 },
20]

위 예시를 MongoDB Compass로 가져와서 스키마 출력을 실험할 수 있습니다. 예시 컬렉션을 MongoDB Compass로 가져오려면 다음을 수행하세요.

1

위의 JSON 문서를 복사하세요.

2

MongoDB Compass에서 컬렉션을 선택하거나 새 컬렉션을 생성하여 복사한 문서를 가져옵니다. Documents 탭이 표시됩니다.

3
4
5

대화 상자의 JSON 보기에서 복사한 문서를 붙여넣고 Insert를 클릭합니다.

위의 예는 다음 스키마를 출력합니다:

1{
2 "$schema": "https://json-schema.org/draft/2020-12/schema",
3 "type": "object",
4 "required": [
5 "_id",
6 "title",
7 "year"
8 ],
9 "properties": {
10 "_id": {
11 "$ref": "#/$defs/ObjectId"
12 },
13 "genres": {
14 "type": "array",
15 "items": {
16 "type": "string"
17 }
18 },
19 "plot": {
20 "type": "string"
21 },
22 "title": {
23 "type": "string"
24 },
25 "year": {
26 "type": "integer"
27 }
28 },
29 "$defs": {
30 "ObjectId": {
31 "type": "object",
32 "properties": {
33 "$oid": {
34 "type": "string",
35 "pattern": "^[0-9a-fA-F]{24}$"
36 }
37 },
38 "required": [
39 "$oid"
40 ],
41 "additionalProperties": false
42 }
43 }
44}
1{
2 "$jsonSchema": {
3 "bsonType": "object",
4 "required": [
5 "_id",
6 "title",
7 "year"
8 ],
9 "properties": {
10 "_id": {
11 "bsonType": "objectId"
12 },
13 "genres": {
14 "bsonType": "array",
15 "items": {
16 "bsonType": "string"
17 }
18 },
19 "plot": {
20 "bsonType": "string"
21 },
22 "title": {
23 "bsonType": "string"
24 },
25 "year": {
26 "bsonType": "int"
27 }
28 }
29 }
30}

샘플 값은 처음 100 자로 제한됩니다.

1{
2 "type": "object",
3 "x-bsonType": "object",
4 "required": [
5 "_id",
6 "title",
7 "year"
8 ],
9 "properties": {
10 "_id": {
11 "$ref": "#/$defs/ObjectId",
12 "x-bsonType": "objectId",
13 "x-metadata": {
14 "hasDuplicates": false,
15 "probability": 1,
16 "count": 3
17 },
18 "x-sampleValues": [
19 "573a1391f29313caabcd7616",
20 "573a1392f29313caabcd9c1b",
21 "573a1390f29313caabcd6223"
22 ]
23 },
24 "genres": {
25 "type": "array",
26 "x-bsonType": "array",
27 "x-metadata": {
28 "hasDuplicates": true,
29 "probability": 0.3333333333333333,
30 "count": 1
31 },
32 "items": {
33 "type": "string",
34 "x-bsonType": "string",
35 "x-metadata": {
36 "hasDuplicates": false,
37 "probability": 1,
38 "count": 2
39 },
40 "x-sampleValues": [
41 "drama",
42 "horror"
43 ]
44 }
45 },
46 "plot": {
47 "type": "string",
48 "x-bsonType": "string",
49 "x-metadata": {
50 "hasDuplicates": false,
51 "probability": 0.6666666666666666,
52 "count": 2
53 },
54 "x-sampleValues": [
55 "Salome, the daughter of Herodias, seduces her step-father/uncle Herod, ...",
56 "Gwen's family is rich, but her parents ignore her and most of the serv..."
57 ]
58 },
59 "title": {
60 "type": "string",
61 "x-bsonType": "string",
62 "x-metadata": {
63 "hasDuplicates": false,
64 "probability": 1,
65 "count": 3
66 },
67 "x-sampleValues": [
68 "Salomè",
69 "Payment Deferred",
70 "The Poor Little Rich Girl"
71 ]
72 },
73 "year": {
74 "type": "integer",
75 "x-bsonType": "int",
76 "x-metadata": {
77 "hasDuplicates": false,
78 "probability": 1,
79 "count": 3
80 },
81 "x-sampleValues": [
82 1922,
83 1932,
84 1917
85 ]
86 }
87 },
88 "$defs": {
89 "ObjectId": {
90 "type": "object",
91 "properties": {
92 "$oid": {
93 "type": "string",
94 "pattern": "^[0-9a-fA-F]{24}$"
95 }
96 },
97 "required": [
98 "$oid"
99 ],
100 "additionalProperties": false
101 }
102 }
103}

돌아가기

데이터 스키마 분석

이 페이지의 내용