Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

Modo de esquema automático (guardar un esquema en MongoDB)

La La opción --schemaSource indica a mongosqld que utilice una base de datos específica en la instancia de MongoDB conectada para el almacenamiento del esquema. mongosqld puede crear una nueva base de datos para almacenamiento de esquemas o utilizar una base de datos existente.

Si especificas una base de datos existente que se haya utilizado previamente para el almacenamiento de esquemas, la opción --schemaMode determina si mongosqld escribe nuevos datos de esquema en la base de datos especificada o solo lee de ella. Si especifica una base de datos que no existe actualmente, debe establecer --schemaMode en auto.

El siguiente comando de ejemplo utiliza una base de datos denominada sampleDb para almacenar información de esquema y configura --schemaMode en auto.

mongosqld --schemaSource sampleDb --schemaMode auto

Para obtener más información sobre los modos de muestreo, consulta el cuadro de referencia de modos de muestreo.

Por defecto, mongosqld no vuelve a muestrear datos automáticamente después de generar el esquema. Especifica la opción --schemaRefreshIntervalSecs para dirigir mongosqld a volver a muestrear automáticamente los datos y regenerar el esquema en un cronograma fijo.

Para forzar una actualización única del esquema, use el comando FLUSH SAMPLE desde su cliente SQL.

Si tu instancia de MongoDB utiliza autenticación, además de los permisos descritos en la sección muestreo en caché,debes especificar un usuario de MongoDB con permiso de escritura en la base de datos de esquema especificada.

Para crear un usuario con los permisos necesarios para ejecutar mongosqld con un esquema persistente, puedes crear un rol personalizado con los permisos mínimos necesarios, como se describe en Permisos de usuario para muestreo almacenado en caché, o utilizar el rol integrado readAnyDatabase. En cualquier caso, el usuario también necesita permisos de escritura en la base de datos del esquema especificado.

db.getSiblingDB("admin").createUser(
{
user: "<username>",
pwd: "<password>",
roles: [
{ "role": "readAnyDatabase", "db": "admin" },
{ "role": "readWrite", "db": "<dbname>" }
]
}
)

En el siguiente ejemplo, un usuario llamado bicUser con la contraseña myPass proporciona credenciales para leer y actualizar una base de datos de esquema llamada schemaDb.

mongosqld --auth -u bicUser -p myPass --schemaSource schemaDb --schemaMode auto

Volver

Modo de esquema independiente (muestreo en caché)

En esta página