Editar esquema usando la interfaz de usuario de Atlas
Para editar un esquema existente, utiliza los siguientes pasos.
En Atlas, vaya a la instancia de base de datos federada para su proyecto.
Si aún no se muestra, seleccione la organización que contiene su proyecto en la Organizations Menú en la barra de navegación.
Si aún no se muestra, seleccione su proyecto en el menú Projects de la barra de navegación.
En la barra lateral, haz clic en Data Federation en la sección Services.
El Se muestra lapágina Federación de datos.
Editar esquema usando mongosh
El comando sqlSetSchema establece o elimina el esquema de una colección o vista. El comando utiliza el esquema proporcionado para crear el esquema relacional. No valida el esquema proporcionado con los datos de la colección.
Sintaxis
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
Parameter | Tipo | Descripción | Necesidad |
|---|---|---|---|
| string | Nombre de la colección para la que se establecerá el esquema. Debe proporcionar un nombre de colección o de vista. | Condicional |
| string | Nombre de la vista para la que se establecerá el esquema. Debe proporcionar un nombre de vista o de colección. | Condicional |
| Documento |
Puede proporcionar un solo documento o un arreglo de documentos en el campo | Requerido |
Salida
El comando devuelve la siguiente salida si se tiene éxito.
{ "ok" : 1 }
Puede verificar que el comando se ejecutó correctamente ejecutando el comando sqlGetSchema. El campo metadata.description de la respuesta contiene el siguiente valor:
"set using sqlSetSchema"
Ejemplos
Considere una colección llamada egData en una base de datos llamada sampleDB con los siguientes 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}
Los ejemplos a continuación utilizan el comando sqlSetSchema para establecer y eliminar el esquema para la colección anterior.
Ejemplo de esquema de conjunto
El siguiente comando sqlSetSchema establece el esquema para la colección 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" ] } } } } } } } } } } } })
El comando anterior produce la siguiente salida.
{ "ok" : 1 }
Ejemplo de eliminación de esquema
El siguiente comando sqlSetSchema elimina el esquema de la colección egData.
db.getSiblingDB("sampleDB").runCommand({ sqlSetSchema: "egData", schema: {} })
El comando anterior produce la siguiente salida.
{ "ok" : 1 }