Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /
Defina y actualice su modelo de datos

Create a Data Model

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.

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

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
})
3

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.

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

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. _id can be of type string, int, or objectId.

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

2

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.

Los modelos de objetos Realm 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
})

Refer to the Atlas Device SDK-specific documentation to use the generated Realm Object Schema.

  • 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.

Volver

Sync Data Model Overview

En esta página