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.
You can create the data model for your App through the Realm Object Schema first or through the App Services Schema first:
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.
Cree un esquema de App Services a partir de un modelo de objeto 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.
Edit Your Realm Object Schema
As you continue to develop your application, you will need to modify your data model with it to enforce different data validation rules based on those changes. While Development Mode is on, you can edit your Realm Object Schema in your client code. Data Validation occurs when Development Mode is off, so App Services does not accept changes to your Realm Object Schema while Development Mode is not on.
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, los servicios de aplicación no validarán las escrituras contra tu modelo de datos, permitiéndote actualizar libremente tu Modelo de objeto Realm. Cuando se desactiva Development Mode, MongoDB App Services actualiza automáticamente tu Esquema de App Services y comienza a aplicar la validación de datos para tu clúster de Atlas en función de é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 aplicación Services
To get started, ensure you have an App Services Schema defined. App Services will translate this App Services Schema into a Realm Object Schema to be configured and utilized in your mobile application.
Tenga en cuenta los siguientes requisitos:
The App Services Schema must have a primary key field called
_id._idcan be of typestring,int, orobjectId.Los nombres de tipo de objeto 57 8 de su esquema no pueden superar los caracteres UTF-.
View the Realm Object Schema
The Realm Object Schema defines and validates your data in your mobile client application. To view your Realm Object Schema, navigate to the Atlas Device SDKs page, then click the Realm Object Models tab. On this page, you can view your App Services Schema as a generated Realm Object Schema in your language of choice.

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 })
Refer to the Atlas Device SDK-specific documentation to use the generated Realm Object Schema.
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.
To learn how to define a schema for a collection in your synced cluster, see Define & Enforce a Schema.
