Editar esquema
Nesta página
Editar esquema usando a UI do Atlas
Para editar um esquema existente, use as etapas a seguir.
No Atlas, acesse sua instância de banco de dados federado para seu projeto.
Se ainda não estiver exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.
Se ainda não estiver exibido, selecione seu projeto no menu Projects na barra de navegação.
Na barra lateral, clique em Data Federation sob o título Services.
A página Data Federation é exibida.
Editar esquema usando mongosh
O comando sqlSetSchema
define ou exclui o esquema de uma coleção ou visualização. O comando usa o esquema fornecido para criar o esquema relacional. O comando não valida o esquema fornecido com o comando em relação aos dados da coleção.
Sintaxe
db.getSiblingDB("<dbName>").runCommand({ sqlSetSchema: "<collection-name>|<view-name>", schema: { "version": 1, "jsonSchema": <jsonSchema> } })
db.getSiblingDB("<dbName>").runCommand({ sqlSetSchema: "<collection-name>|<view-name>", schema: {} })
Parâmetros
Parâmetro | Tipo | Descrição | necessidade |
---|---|---|---|
<collection-name> | string | Nome da collection para a qual definir o esquema. Você deve fornecer um nome de collection ou um nome de visualização. | Condicional |
<view-name> | string | Nome da visualização para a qual definir o esquema. Você deve fornecer um nome de visualização ou um nome de collection. | Condicional |
schema | documento |
Você pode fornecer um único documento ou uma array de documentos no campo | Obrigatório |
Saída
O comando retornará a seguinte saída se for bem-sucedido.
{ "ok" : 1 }
Você pode verificar se o comando foi bem-sucedido executando o comando sqlGetSchema
. O campo metadata.description
na resposta contém o seguinte valor:
"set using sqlSetSchema"
Exemplos
Considere uma coleção denominada egData
em um banco de dados denominada sampleDB
com os seguintes documentos:
{"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}
Os exemplos abaixo usam o comando sqlSetSchema
para configurar e remover o esquema para a collection acima.
Definir exemplo de esquema
O seguinte comando sqlSetSchema
define o esquema para a collection 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" ] } } } } } } } } } } } })
O comando anterior retorna a seguinte saída.
{ "ok" : 1 }
Excluir exemplo de esquema
O comando sqlSetSchema
seguinte remove o esquema da collection egData
.
db.getSiblingDB("sampleDB").runCommand({ sqlSetSchema: "egData", schema: {} })
O comando anterior retorna a seguinte saída.
{ "ok" : 1 }