Docs Menu
Docs Home
/
MongoDB Atlas
/ / /

스키마 편집

이 페이지의 내용

  • Atlas UI 를 사용하여 스키마 편집
  • Atlas에서 프로젝트의 연합 데이터베이스 인스턴스로 이동합니다.
  • SQL 스키마 관리 페이지로 이동합니다.
  • 스키마를 편집합니다.
  • 다음을 사용하여 스키마 편집 mongosh
  • 구문
  • 매개변수
  • 출력
  • 예시
  • 스키마 설정 예시
  • 스키마 삭제 예시

기존 스키마를 편집하려면 다음 단계를 따르세요.

1
  1. 아직 표시되지 않은 경우 다음에서 프로젝트가 포함된 조직을 선택합니다. Organizations 메뉴를 클릭합니다.

  2. 아직 표시되지 않은 경우 내비게이션 바의 Projects 메뉴에서 프로젝트를 선택합니다.

  3. 사이드바에서 Services 제목 아래의 Data Federation를 클릭합니다.

    Data Federation 페이지가 표시됩니다.

2

Federated Database Instances 섹션에서 다음을 클릭합니다. 스키마 오른쪽에 있는 아이콘을 클릭한 다음 드롭다운에서 Manage SQL Schemas 를 선택합니다.

3
  1. 스키마 옆에 있는 .

  2. JSON 을 편집합니다.

  3. Save를 클릭합니다.

sqlSetSchema 명령은 컬렉션 또는 뷰의 스키마를 설정하거나 삭제합니다. 이 명령은 제공된 스키마를 사용하여 관계형 스키마를 생성합니다. 이 명령은 컬렉션의 데이터에 대해 명령과 함께 제공된 스키마의 유효성을 검사하지 않습니다.

db.getSiblingDB("<dbName>").runCommand({
sqlSetSchema: "<collection-name>|<view-name>",
schema: {
"version": 1,
"jsonSchema": <jsonSchema>
}
})
db.getSiblingDB("<dbName>").runCommand({
sqlSetSchema: "<collection-name>|<view-name>",
schema: {}
})
Parameter
유형
설명
필요성
<collection-name>
문자열
스키마 를 설정하다 컬렉션 의 이름입니다. 컬렉션 이름 또는 뷰 이름을 제공해야 합니다.
조건부
<view-name>
문자열
스키마 를 설정하다 뷰의 이름입니다. 뷰 이름 또는 컬렉션 이름을 제공해야 합니다.
조건부
schema
문서
스키마 의 형식 버전과 다음 중 하나를 입력합니다.
  • 컬렉션 또는 뷰에 대한 JSON 스키마

  • 빈 문서를 클릭하여 컬렉션 또는 뷰에 대한 스키마를 제거합니다.

items 필드에 단일 문서 또는 문서 배열을 제공할 수 있습니다. 스키마를 검색할 때 items 은(는) 스키마 설정에 사용한 양식을 표시합니다.

필수 사항

명령이 성공하면 다음과 같은 출력을 반환합니다.

{ "ok" : 1 }

sqlGetSchema 명령을 실행 하여 명령이 성공했는지 확인할 수 있습니다. 응답의 metadata.description 필드 에는 다음 값이 포함되어 있습니다.

"set using sqlSetSchema"

다음 문서가 포함된 sampleDB라는 데이터베이스에 있는 egData 컬렉션을 고려해 보세요.

{"a": {"b": {"c": [1, 2, 3]}}, "s": 1}
{"a": {"b": {"c": [4, 5, 6]}}, "s": 2}
{"a": {"b": [7, 8, 9]}, "s": 3}
{"a": {"b": {"c": []}}, "s": 4}
{"a": {"b": {"c": "hello"}}, "s": 5}
{"a": {"b": {"c": {"d": 1}}}, "s": 6}
{"a": {"b": {"c": null}}}
{"s": 7}

아래 예시에서는 sqlSetSchema 명령을 사용하여 위 컬렉션에 대한 스키마를 설정하고 제거합니다.

다음 sqlSetSchema 명령은 egData 컬렉션의 스키마를 설정합니다.

db.getSiblingDB("sampleDB").runCommand({
sqlSetSchema : "egData",
"schema" : {
"version" : NumberLong(1),
"jsonSchema" : {
"bsonType" : [ "object" ],
"properties" : {
"a" : {
"bsonType" : [ "object" ],
"properties" : {
"b" : {
"bsonType" : [ "object", "array" ],
"properties" : {
"c" : {
"bsonType" : [ "array", "string", "object", "null" ],
"properties" : {
"d" : {
"bsonType" : [ "int" ]
}
},
"items" : {
"bsonType" : [ "int" ]
}
}
},
"items" : {
"bsonType" : [ "int" ]
}
}
}
},
"s" : {
"bsonType" : [ "int", "object" ],
"properties" : {
"b" : {
"bsonType" : [ "object" ],
"properties" : {
"c" : {
"bsonType" : [ "object" ],
"properties" : {
"d" : {
"bsonType" : [ "array" ],
"items" : {
"bsonType" : [ "string" ]
}
}
}
}
}
}
}
}
}
}
}
})

이전 명령은 다음 출력을 반환합니다.

{ "ok" : 1 }

다음 sqlSetSchema 명령은 egData collection의 스키마를 제거합니다.

db.getSiblingDB("sampleDB").runCommand({
sqlSetSchema: "egData",
schema: {}
})

이전 명령은 다음 출력을 반환합니다.

{ "ok" : 1 }

돌아가기

보기