Menu Docs

Exportar Seu Esquema

Você pode exportar seu esquema depois de analisá-lo. Isso é útil para compartilhar seu esquema e comparar esquemas entre collections.

Se ainda não o fez, analise seu esquema:

1

Selecione a coleção desejada e clique na aba Schema.

2

Clique em Analyze Schema.

Quando o Compass analisa seu esquema, ele coleta amostras de um subconjunto aleatório de documentos da sua coleção. Para saber mais sobre amostragem, consulte Amostragem.

Depois que seu esquema for analisado, use o seguinte procedimento para exportá-lo.

1
Image showing Export Schema button

O botão Export Schema aparece no canto superior esquerdo da janela de visualização.

2

No modal Export JSON Schema, selecione o formato para exportar.

Export JSON Schema modal
clique para ampliar

Você pode exportar seu esquema para os seguintes formatos:

3

Selecione o local no seu sistema de arquivos para salvar seu esquema.

Os objetos de esquema de formato padrão contêm os seguintes campos:

Propriedade
Tipo de Dados
Descrição

type

string ou array

Tipo JSON deste tipo de dados. Para obter detalhes, consulte os documentos JSON oficiais do tipo.

required

array de strings

Campos que devem aparecer no esquema. Para obter detalhes, consulte os documentos JSON oficiais necessários.

properties

objeto

Propriedades para cada campo. As chaves são nomes de propriedade e os valores são subesquemas. Para obter detalhes, consulte os documentos JSON oficiais para propriedades.

items

documento

Metadados sobre elementos em campos de array. Os metadados aparecem como subesquemas incorporados. Para obter detalhes, consulte os documentos JSON oficiais para itens.

Esta não é uma lista exaustiva de todos os campos possíveis. Para obter detalhes sobre campos adicionais, consulte a especificação oficial do JSON schema.

Os objetos de esquema de formato MongoDB contêm os seguintes campos:

Propriedade
Tipo de Dados
Descrição

bsonType

cadeia de caracteres ou matriz de cadeias de caracteres

Tipo BSON deste campo.

required

array de strings

Campos que devem aparecer no esquema.

properties

documento

Propriedades para cada campo. As chaves são nomes de propriedade e os valores são subesquemas.

items

documento

Metadados sobre elementos em campos de array. Os metadados aparecem como subesquemas incorporados.

Esta não é uma lista exaustiva de todos os campos possíveis. Para obter detalhes sobre campos adicionais, consulte a especificação oficial do JSON schema.

Os objetos de esquema de formato expandido contêm estes campos além dos campos de esquema padrão:

Propriedade
Tipo de Dados
Descrição

x-bsonType

string ou array

Tipo BSON deste campo.

x-metadata

documento

Documento contendo metadados sobre o campo.

hasDuplicates

booleano

true se um único valor aparecer várias vezes neste campo. Caso contrário, false.

probability

float

Probabilidade de que o campo exista em um documento aleatório.

count

inteiro

Número de documentos da amostra que têm este campo.

x-sampleValues

array

Valores de amostra como JSON expandido. Os valores das amostras estão limitados aos primeiros 100 caracteres.

Esta não é uma lista exaustiva de todos os campos possíveis. Para obter detalhes sobre campos adicionais, consulte a especificação oficial do JSON schema.

O Compass não pode exportar um esquema que tenha mais de 1000 campos distintos. Se você tentar exportar um esquema com mais de 1000 campos distintos, o Compass retornará um erro.

O exemplo a seguir usa uma collection de documentos 3, cada um com um campo title e informações exclusivas sobre esse filme:

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]

Você pode importar o exemplo acima para o MongoDB Compass para experimentar as saídas do esquema. Para importar a coleção de exemplo para o MongoDB Compass:

1

Copie os documentos JSONacima.

2

No MongoDB Compass, selecione uma coleção ou crie uma nova coleção para importar os documentos copiados. A aba Documents é exibida.

3
4
5

Na visualização JSON da caixa de diálogo, cole os documentos copiados e clique em Insert.

O exemplo acima gera o seguinte esquema:

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}

Os valores das amostras estão limitados aos primeiros 100 caracteres.

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}