Docs 菜单
Docs 主页
/ /
Atlas App Services
/ /

创建数据模型

在此页面上

  • Overview
  • 先决条件
  • 从 Realm 对象模式创建 App Services 模式
  • 从 App Services 模式创建 Realm 对象模式
  • 深入阅读

Device Sync 数据模型由两个一致的模式组成:Atlas Device SDK 中使用的 Realm 对象模式和 App Services 模式。

您可以首先通过 Realm Object Schema 或者首先通过 App Services Schema 为应用创建数据模型:

  • 从 Realm 对象模式创建 App Services 模式:如果您正在开发移动优先模式,并且 Atlas 集群中尚无数据,则可以将 Realm 对象模式转换为 App Services 模式。

  • 从 App Services 架构创建 Realm 对象架构:如果 MongoDB Atlas 集群中已有数据,则 MongoDB 会通过对数据进行采样来生成架构。然后,Atlas App Services 可以将该架构转换为 Realm 对象架构,以便通过 Atlas Device SDK 在移动应用程序中使用。

无论采用哪种方法,将 Atlas 集群和移动应用程序配置为使用各自的数据模型时,在服务器和客户端之间对数据模型的更改都会自动更新。

应用必须拥有至少一个链接的数据源,才能创建架构。

但是,它不能无服务器实例联合数据库实例

您可以通过移动客户端 SDK 更改或定义 Realm 对象模式。只有在启用开发模式时才允许更改 Realm 对象模式。App Services 会将对 Realm 对象模式的任何更改反映到用于 App Services 模式中。

有关创建 Realm 对象模式的信息,请参阅特定于 Atlas Device SDK 的文档。

1

已在 App Services 用户界面中设置开发模式。

要启用开发模式,请单击 Development Mode 右侧的滑块。

用于启用开发模式的用户界面
点击放大
2

在继续开发应用程序的过程中,您需要使用它来修改数据模型,以便根据这些更改执行不同的数据验证规则。当 Development Mode 开启时,您可以在客户端代码中编辑 Realm 对象模式。在 Development Mode 关闭时会进行数据验证,因此 Development Mode 未开启时,App Services 不接受对 Realm 对象模式的更改。

重要

必填主键 _id

要使用 Atlas Device Sync,您的数据模型必须有一个名为 _id 的主键字段。_id 可以是 stringintobjectId 类型。

例子

一个群组正在开发一款社交媒体应用程序。当该群组首次开发其应用程序时,某一用户的生日是该用户的数据模型的必填字段。然而,由于针对所存储用户数据量的隐私问题,管理层制定了一个新要求:将该用户的生日字段设为可选字段。应用程序开发者在 App Services 用户界面中开启 Development Mode,然后在其客户端代码中编辑用户模型。

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

Development Mode 打开时,App Services 不会根据您的数据模型验证写入,从而允许您自由更新 Realm 对象模型。当您关闭 Development Mode 时,MongoDB App Services 会自动更新您的 App Services 模式,并开始据此对 Atlas 集群强制执行数据验证。

Sync(同步)屏幕,点击 Development Mode(开发模式)旁边的滑块关闭 Development Mode。UI 指示开发模式已关闭。

显示开发模式的用户界面已禁用
点击放大

注意

要从移动客户端代码进行未来的数据模型更新,可再次执行此过程。

1

首先,确保已有定义的 App Services 模式。App Services 将此 App Services 模式转换为要在移动应用程序中配置和使用的 Realm 对象模式。

请注意以下要求:

  • App Services 模式必须有一个名为 _id 的主键字段。_id 可以是 stringintobjectId 类型。

  • 您的模式对象类型名称不能超过 57 UTF-8 个字符。

2

Realm 对象模式可定义并验证移动客户端应用程序中的数据。若要查看 Realm 对象模式,请导航至 Atlas Device SDKs 页面,然后单击 Realm Object Models 标签页。在此页面上,可以将 App Services 模式视为使用您所选语言生成的 Realm 对象模式。

UI 中生成的 Realm 对象模型和相关警告
点击放大
3

您可以在客户端应用程序中使用生成的 Realm 对象模式。为了开始使用数据模型执行数据验证,您可以使用 Realm 对象模式打开一个域。这将防止不正确的数据从移动客户端进入数据库。

对于要集成到移动应用程序代码中的对象模型,单击 Realm 对象模式右侧的 Copy 按钮。这会将您选择的 SDK 的 Realm 对象模式代码复制到剪贴板。

在 IDE 中打开移动应用程序代码,然后粘贴 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
})

请参阅 Atlas Device SDK 的特定文档,以使用生成的 Realm 对象模式。

后退

同步数据模型概述