Atlas Device Sync 入门
要跨设备同步数据,请启用Device Sync ,然后使用 Atlas Device SDK中与同步相关的方法和属性。
开始之前
如果您还没有帐户,请注册一个免费的MongoDB Atlas帐户。
Device Sync需要运行MongoDB 5.0或更高版本的Atlas 集群。 您可以使用免费的共享 M 0集群来探索和开发您的应用。 我们建议您将专用层级集群(M 10及以上)用于生产应用程序。 不能将同步与无服务器实例或联合数据库实例一起使用。
如果您还没有 App Services App,请创建一个链接到您的Atlas 集群的新App Services App 。
配置数据模型
选择 SDK
Atlas Device SDK封装了Realm核心数据库,这是一个针对移动设备优化的对象数据库。 该 SDK 支持多种语言和平台,包含在客户端代码中使用同步数据库所需的所有内容。 您可以使用多种 SDK 语言来跨设备和平台处理同一设立同步数据。
本指南重点介绍如何使用 SDK 配置Device Sync 。 有关包含如何更广泛地安装和使用Atlas Device SDK的详细信息的深入文档,请查看 SDK Docs :
注意
将Device Sync与Realm JavaScript WebAssembly SDK 结合使用
有关使用Realm Database API和Atlas Device Sync为浏览器构建实时 Web 应用的更多信息,请查看Realm Web 和Atlas Device Sync入门(预览版) 。 或者,您可以使用MongoDB数据访问在Atlas 集群中查询相同的数据。
定义数据模型
同步数据库使用您定义的对象模型来确定数据库中对象的类型。 此外,Sync 需要为每个同步对象类型提供服务器端文档模式,以便服务器可以在同步数据库和MongoDB Atlas之间转换和应用更改。
要定义同步对象模型,请为每种对象类型执行以下操作之一:
从 SDK 同步对象模型:在开发模式 下,您可以为每个同步的对象类型自动生成文档模式,并将该模式分配给关联集群中与对象类型同名的集合。 开发模式允许您使用与生产应用程序中相同的对象模型和代码从客户端应用程序配置同步的数据模型。 如果您更喜欢采用客户端优先方法,即在您首选的编程语言中使用一致的对象模型,这非常有用。
要开始使用,请查看“创建数据模型”。
从文档模式生成对象模型:如果Atlas中已有数据,则可以自动生成特定于语言的对象模型,这些模型与为应用的同步集群定义的文档模式相匹配。 您可以手动定义这些模式,或者App Services可以对集群中的现有数据进行示例以自动创建这些模式。 如果您更喜欢使用服务器优先方法或计划使用多个 SDK构建应用程序,这非常有用。
有关如何生成可在客户端应用程序中使用的对象模型的演练,请参阅生成 SDK 对象模型。
生成对象模型后,您可以将其直接复制到客户端应用程序中,并像使用您首选编程语言中的任何常规对象或结构一样使用它们。
定义数据访问模式
决定应用的数据模型后,您可以为应用的数据定义数据访问模式和访问规则。
客户端应用程序可以查询文档的可查询字段,以确定哪些对象需要同步。然后,App Services 应用规则和默认角色来确定用户是否可以读取或写入与查询匹配的对象。
定义数据访问规则
数据访问规则决定要同步哪些数据,以及每个用户读取和写入数据的能力。规则与应用的数据模型密切相关。
使用Device Sync ,您可以通过查询客户端应用程序中的匹配对象来指定要同步的数据。 然后, App Services评估角色和规则,以确定用户可以读取和写入哪些匹配对象。
您可以在特定集合上定义角色。当更具体的角色不适用时,默认角色提供读取和写入权限。默认角色适用于应用可以访问的所有集合,但您可以通过指定集合名称来限制角色只能访问特定集合。
配置同步
Device Sync允许您指定客户端如何访问权限应用程序中的数据。 有关如何启用和配置 Sync 的演练,请参阅配置和启用Atlas Device Sync。
优化同步数据使用量
Device Sync 同步 Atlas 集群中具有定义的模式的集合中的所有数据。如果您未在模式中指定某个字段,则 Device Sync 不会将该字段同步到客户端。
Sync 在同步的集群中存储一些实用程序数据,以帮助与客户端之间同步数据。Device Sync 具有内置的优化功能,以减少同步的集群中存储的实用程序数据量。如果您希望进一步减少实用程序数据量以适合您的使用案例,请参阅我们的优化 Device Sync Atlas 使用量指南。
在客户端应用程序中创建查询
启用Device Sync后,您可以开始从客户端应用程序创建查询。
Atlas Device SDK提供了在客户端应用程序中创建、更新和删除查询的方法。 SDK 使用订阅来维护客户端端的这些查询。 通过这些订阅,您的应用程序可以将对象与后端应用程序同步,并且可以监视更改并做出React 。
要从客户端应用程序创建查询,请参阅您首选编程语言的Atlas Device SDK文档:
重要
Flexible Sync 忽略自定义排序规则
Flexible Sync 会忽略您可能在Atlas中的MongoDB集合上配置的任何自定义排序规则。 相反,在评估同步订阅或权限时,同步集合始终使用 {locale: "simple"}
。