Docs Menu
Docs Home
/ /
Defina y actualice su modelo de datos

Crear un modelo de datos

El modelo de datos de sincronización del dispositivo consta de dos esquemas consistentes: el esquema de objeto Realm utilizado en Atlas Device SDK y el esquema de servicios de aplicaciones.

Puede crear el modelo de datos para su aplicación a través del esquema de objetos de Realm primero o a través del esquema de servicios de aplicaciones primero:

  • Cree un esquema de servicios de aplicaciones a partir de un esquema de objeto de reino: si está desarrollando para dispositivos móviles y aún no tiene datos en su clúster Atlas, puede traducir su esquema de objeto de reino en un esquema de servicios de aplicaciones.

  • Crear un esquema de objeto de dominio a partir de un esquema de App Services: Si ya tiene datos en su clúster de MongoDB Atlas, MongoDB genera un esquema muestreándolos. Atlas App Services puede traducir ese esquema a un esquema de objeto de dominio para usarlo en su aplicación móvil con el SDK de dispositivos Atlas.

Independientemente del enfoque que adopte, cuando configura su clúster Atlas y su aplicación móvil para usar el modelo de datos respectivo, los cambios en el modelo de datos entre el servidor y el cliente se actualizan automáticamente.

Su aplicación debe tener al menos una fuente de datos vinculada para poder crear un esquema.

Sin embargo,no puede ser una instancia sin servidor o una instancia de base de datos federada.

Puedes modificar o definir un esquema de objeto de Realm a través del SDK de tu cliente móvil. Solo se permiten cambios en el esquema de objeto de Realm cuando el modo de desarrollo está habilitado. App Services reflejará cualquier cambio en el esquema de objeto de Realm en su esquema de App Services.

Consulte la documentación específica del SDK del dispositivo Atlas para crear esquemas de objetos de Realm.

1

El modo de desarrollo se configura en la interfaz de usuario de App Services.

Para habilitar el modo de desarrollo, haga clic en el control deslizante a la derecha de Development Mode.

La interfaz de usuario para habilitar el modo de desarrollo
haga clic para ampliar
2

A medida que desarrolle su aplicación, deberá modificar su modelo de datos para aplicar diferentes reglas de validación de datos según esos cambios. Mientras Development Mode esté activado, puede editar el esquema de objeto de Realm en el código de cliente. La validación de datos se produce cuando Development Mode está desactivado, por lo que App Services no acepta cambios en el esquema de objeto de Realm mientras Development Mode no esté activado.

Importante

Clave principal _id requerida

Para trabajar con Atlas Device Sync, su modelo de datos debe tener un campo de clave principal llamado _id. _id puede ser de tipo string, int o objectId.

Ejemplo

Un grupo está desarrollando una aplicación de redes sociales. Al principio, el cumpleaños del usuario era un campo obligatorio en el modelo de datos del usuario. Sin embargo, debido a la preocupación por la privacidad de la cantidad de datos almacenados, la administración creó un nuevo requisito para que el cumpleaños del usuario fuera opcional. Los desarrolladores de aplicaciones activan Development Mode en la interfaz de usuario de App Services y luego editan su modelo de usuario en el código del cliente.

const realmObjectModel = {
name: 'User',
properties: {
_id: 'objectId',
_partition: 'string',
name: 'string',
// developers set optional: true to adhere to the new requirement
birthday: {type: 'date', optional: true},
},
primaryKey: '_id'
};
Realm.open({schema: realmObjectModel, sync: {/*...*/}})
.then(realm => {
// ... use the realm instance to read and modify data
})
3

Mientras Development Mode esté activado, App Services no valida las escrituras con tu modelo de datos, lo que te permite actualizar libremente tu modelo de objetos de Realm. Al desactivar Development Mode, MongoDB App Services actualiza automáticamente tu esquema de App Services y empieza a aplicar la validación de datos para tu clúster Atlas basándose en él.

En la pantalla Sync, desactive Development Mode haciendo clic en el control deslizante junto a Development Mode. La interfaz de usuario indica que el modo de desarrollo está desactivado.

La interfaz de usuario que muestra que el modo de desarrollo está deshabilitado
haga clic para ampliar

Nota

Para realizar futuras actualizaciones del modelo de datos desde el código de su cliente móvil, puede seguir este procedimiento nuevamente.

1

Para comenzar, asegúrese de tener definido un esquema de App Services. App Services lo traducirá en un esquema de objeto Realm para configurarlo y utilizarlo en su aplicación móvil.

Tenga en cuenta los siguientes requisitos:

  • El esquema de servicios de aplicaciones debe tener un campo de clave principal _id llamado. _id puede ser de string tipo, int objectIdo.

  • Los nombres de tipo de objeto 57 8 de su esquema no pueden superar los caracteres UTF-.

2

El esquema de objeto de Realm define y valida sus datos en su aplicación cliente móvil. Para ver su esquema de objeto de Realm, vaya a la página Atlas Device SDKs y haga clic en la pestaña Realm Object Models. En esta página, puede ver su esquema de App Services como un esquema de objeto de Realm generado en el idioma que prefiera.

Los modelos de objetos de reino generados y las advertencias asociadas en la interfaz de usuario
haga clic para ampliar
3

Puede usar el esquema de objeto de dominio generado en su aplicación cliente. Para empezar a aplicar la validación de datos con su modelo de datos, puede abrir un dominio con el esquema de objeto de dominio. Esto evitará que datos incorrectos entren en su base de datos desde su cliente móvil.

Haga clic en Copy a la derecha del esquema de objetos de Realm del modelo de objetos que desea integrar en el código de su aplicación móvil. Esto copiará el código del esquema de objetos de Realm del SDK que elija en el portapapeles.

Abra el código de su aplicación móvil en su IDE y pegue el código del esquema de objeto Realm.

const UserSchema = { // your copied and pasted Realm Object Schema
name: 'User',
properties: {
_id: 'objectId',
_partition: 'string',
name: 'string',
birthday: 'date'
},
primaryKey: '_id'
};
// Initialize a realm with your Realm Object Schema
Realm.open({schema: UserSchema, sync: { /* ... */ }})
.then(realm => {
// ... use the realm instance to read and modify data
})

Consulte la documentación específica del SDK del dispositivo Atlas para utilizar el esquema de objeto Realm generado.

  • Para obtener más información sobre cómo estos esquemas se asignan entre sí, consulte Mapeo de modelos de datos.

  • Para actualizar un modelo de datos de sincronización existente, consulte Actualizar su modelo de datos.

  • Para aprender a definir un esquema para una colección en su clúster sincronizado, consulte Definir y aplicar un esquema.

Volver

Descripción general del modelo de datos de sincronización

En esta página