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:
Selecione a collection desejada e clique na aba Schema.
Clique em Analyze Schema.
Observação
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, exporte-o:
Na barra de menus superior, clique em Collection.
Na lista suspensa, clique em Share Schema as JSON.
Seu esquema é copiado para a área de transferência como um objeto JSON .
Propriedades do objeto de esquema
Os objetos de esquema têm propriedades count
e fields
:
count
é um número inteiro que representa o número de documentos amostrados da coleção para gerar o esquema.fields
é um array de objetos de metadados que correspondem a cada campo nos documentos analisados durante a amostragem. Cada elemento no arrayfields
contém os seguintes campos:
Propriedade | Tipo de Dados | Descrição |
---|---|---|
| String | Nome do campo correspondente, por exemplo |
| String | Caminho para o campo correspondente dentro de um documento. |
| Inteiro | Número de documentos nos quais o campo correspondente é exibido. |
| Array | Array de objetos de metadados que representam cada tipo de dados que aparece no campo correspondente. |
| String | Nome deste tipo de dados. |
| String | Tipo BSON deste tipo de dados. |
| String | Caminho para o campo correspondente dentro de um documento. |
| Inteiro | Número de vezes que este tipo de dados aparece no campo correspondente. |
| Array | Array dos valores reais da amostra que aparecem no campo correspondente e correspondem a esse tipo de dados. |
| Inteiro | Se o campo correspondente for um array, o número de elementos nesse array. |
| Número | Probabilidade de que o valor do campo correspondente seja esse tipo de dados em um documento aleatório. |
| Inteiro | Número de valores únicos deste tipo de dados que aparecem no campo correspondente. |
| Boolean |
|
| Array | Se esse tipo de dados for um array, um array de números inteiros que representam os comprimentos dos arrays encontradas no campo correspondente. Não presente para outros tipos de dados. |
| Número | Se esse tipo de dados for um array, o comprimento médio dos arrays no campo correspondente em documentos de amostra. Não presente para outros tipos de dados. |
| Inteiro | Número de documentos amostrados da collection. |
| String ou Array | String ou array de strings representando possíveis tipos para o campo correspondente. |
| Boolean |
|
| Número | Probabilidade de que um documento aleatório contenha o campo correspondente. |
Exemplo do esquema
O exemplo a seguir usa uma collection de 3 documentos, cada um com um campo sport
e informações exclusivas sobre esse esporte:
1 [ 2 { 3 "_id": { "$oid":"5e8359ba7782b98ba98c16fd" }, 4 "sport": "Baseball", 5 "equipment": [ "bat", "baseball", "glove", "helmet" ] 6 }, 7 { 8 "_id": { "$oid":"5e835a727782b98ba98c16fe" }, 9 "sport": "Football", 10 "variants": { 11 "us":"Soccer", 12 "eu":"Football" 13 } 14 }, 15 { 16 "_id": { "$oid":"5e835ade7782b98ba98c16ff" }, 17 "sport": "Cricket", 18 "origin": "England" 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:
Copy os documentos JSON acima.
No MongoDB Compass, selecione uma coleção ou crie uma nova coleção para importar os documentos copiados. A aba Documents é exibida.
Clique em Add Data.
Selecione Insert Document no menu suspenso.
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 "fields": [ 3 { 4 "name": "_id", 5 "path": "_id", 6 "count": 3, 7 "types": [ 8 { 9 "name": "ObjectID", 10 "bsonType": "ObjectID", 11 "path": "_id", 12 "count": 3, 13 "values": [ 14 "5e8359ba7782b98ba98c16fd", 15 "5e835a727782b98ba98c16fe", 16 "5e835ade7782b98ba98c16ff" 17 ], 18 "total_count": 0, 19 "probability": 1, 20 "unique": 3, 21 "has_duplicates": false 22 } 23 ], 24 "total_count": 3, 25 "type": "ObjectID", 26 "has_duplicates": false, 27 "probability": 1 28 }, 29 { 30 "name": "equipment", 31 "path": "equipment", 32 "count": 1, 33 "types": [ 34 { 35 "name": "Undefined", 36 "type": "Undefined", 37 "path": "equipment", 38 "count": 2, 39 "total_count": 0, 40 "probability": 0.6666666666666666, 41 "unique": 1, 42 "has_duplicates": true 43 }, 44 { 45 "name": "Array", 46 "bsonType": "Array", 47 "path": "equipment", 48 "count": 1, 49 "types": [ 50 { 51 "name": "String", 52 "bsonType": "String", 53 "path": "equipment", 54 "count": 4, 55 "values": [ 56 "bat", 57 "baseball", 58 "glove", 59 "helmet" 60 ], 61 "total_count": 0, 62 "probability": 1, 63 "unique": 4, 64 "has_duplicates": false 65 } 66 ], 67 "lengths": [ 68 4 69 ], 70 "total_count": 4, 71 "probability": 0.3333333333333333, 72 "average_length": 4 73 } 74 ], 75 "total_count": 3, 76 "type": [ 77 "Undefined", 78 "Array" 79 ], 80 "has_duplicates": true, 81 "probability": 0.3333333333333333 82 }, 83 { 84 "name": "origin", 85 "path": "origin", 86 "count": 1, 87 "types": [ 88 { 89 "name": "Undefined", 90 "type": "Undefined", 91 "path": "origin", 92 "count": 2, 93 "total_count": 0, 94 "probability": 0.6666666666666666, 95 "unique": 1, 96 "has_duplicates": true 97 }, 98 { 99 "name": "String", 100 "bsonType": "String", 101 "path": "origin", 102 "count": 1, 103 "values": [ 104 "England" 105 ], 106 "total_count": 0, 107 "probability": 0.3333333333333333, 108 "unique": 1, 109 "has_duplicates": false 110 } 111 ], 112 "total_count": 3, 113 "type": [ 114 "Undefined", 115 "String" 116 ], 117 "has_duplicates": true, 118 "probability": 0.3333333333333333 119 }, 120 { 121 "name": "sport", 122 "path": "sport", 123 "count": 3, 124 "types": [ 125 { 126 "name": "String", 127 "bsonType": "String", 128 "path": "sport", 129 "count": 3, 130 "values": [ 131 "Baseball", 132 "Football", 133 "Cricket" 134 ], 135 "total_count": 0, 136 "probability": 1, 137 "unique": 3, 138 "has_duplicates": false 139 } 140 ], 141 "total_count": 3, 142 "type": "String", 143 "has_duplicates": false, 144 "probability": 1 145 }, 146 { 147 "name": "variants", 148 "path": "variants", 149 "count": 1, 150 "types": [ 151 { 152 "name": "Undefined", 153 "type": "Undefined", 154 "path": "variants", 155 "count": 2, 156 "total_count": 0, 157 "probability": 0.6666666666666666, 158 "unique": 1, 159 "has_duplicates": true 160 }, 161 { 162 "name": "Document", 163 "bsonType": "Document", 164 "path": "variants", 165 "count": 1, 166 "fields": [ 167 { 168 "name": "eu", 169 "path": "variants.eu", 170 "count": 1, 171 "types": [ 172 { 173 "name": "String", 174 "bsonType": "String", 175 "path": "variants.eu", 176 "count": 1, 177 "values": [ 178 "Football" 179 ], 180 "total_count": 0, 181 "probability": 1, 182 "unique": 1, 183 "has_duplicates": false 184 } 185 ], 186 "total_count": 1, 187 "type": "String", 188 "has_duplicates": false, 189 "probability": 1 190 }, 191 { 192 "name": "us", 193 "path": "variants.us", 194 "count": 1, 195 "types": [ 196 { 197 "name": "String", 198 "bsonType": "String", 199 "path": "variants.us", 200 "count": 1, 201 "values": [ 202 "Soccer" 203 ], 204 "total_count": 0, 205 "probability": 1, 206 "unique": 1, 207 "has_duplicates": false 208 } 209 ], 210 "total_count": 1, 211 "type": "String", 212 "has_duplicates": false, 213 "probability": 1 214 } 215 ], 216 "total_count": 0, 217 "probability": 0.3333333333333333 218 } 219 ], 220 "total_count": 3, 221 "type": [ 222 "Undefined", 223 "Document" 224 ], 225 "has_duplicates": true, 226 "probability": 0.3333333333333333 227 } 228 ], 229 "count": 3 230 }