Overview
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.
Requisitos previos
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.
Crear un esquema de App Services a partir de un modelo de objetos de Realm
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.
Editar el esquema de objetos de su reino
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 })
Actualice el esquema de sus servicios de aplicaciones con los cambios en el esquema del objeto Realm
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.

Nota
Para realizar futuras actualizaciones del modelo de datos desde el código de su cliente móvil, puede seguir este procedimiento nuevamente.
Crear un esquema de objeto de reino a partir de un esquema de App Services
Definir un esquema de servicios de aplicaciones
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
_idllamado._idpuede ser destringtipo,intobjectIdo.Los nombres de tipo de objeto 57 8 de su esquema no pueden superar los caracteres UTF-.
Ver el esquema del objeto Realm
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.

Abrir un reino con el esquema de objeto de reino
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.
Lectura adicional
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.
