在设备之间同步数据 - Node.js SDK
Atlas Device Sync自动在客户端应用程序和 Atlas App Services后端之间同步数据。 当客户端设备在线时,Sync 会在设备和后端应用程序之间的背景线程中异步同步数据。
Device Sync有两种同步模式:Flexible Sync 和较旧的基于分区的同步。 我们建议对新应用使用Flexible Sync模式。 有关使用基于分区的同步的更多信息,请参阅基于分区的同步- Node.js SDK。
在客户端应用程序中使用同步时,您的实施必须与您在后端应用程序配置中选择的同步模式相匹配。 您只能为应用程序使用一种同步模式。 您不能在同一应用中混用基于分区的同步和Flexible Sync。
Flexible Sync
当您为后端应用程序配置选择“ Flexible Sync ”时,您的客户端实施必须包括对可查询字段的查询的订阅。 Flexible Sync 的工作原理是同步与您在客户端应用程序中维护的查询订阅相匹配的数据。
订阅集包含一组查询。 Realm Flexible Sync 会返回与这些查询匹配的文档,前提是用户具有读取和/或读写这些文档的适当权限。 如果文档与查询匹配,但客户端没有读取或写入文档的权限,则文档不会同步到客户端应用程序。
您可以使用 Realm 查询语言来构造查询。
注意
Flexible Sync 不支持 Realm 查询语言和 SDK 查询引擎中可用的所有查询运算符。有关详细信息,请参阅 Flexible Sync RQL 限制。
订阅集基于特定类型的 Realm 对象。如果您有多种类型的 Realm 对象,则可能有多个订阅。
要在客户端应用程序中使用 Flexible Sync,请使用灵活同步配置打开同步域。然后,管理订阅以确定要同步的文档。
更新群组以提高性能
订阅集的每个写入事务都会产生性能成本。如果需要在会话期间对 Realm 对象进行多次更新,请考虑将编辑的对象保留在内存中,直到所有更改完成。这通过仅将完整且更新的对象写入 Realm 而不是每次更改来提高同步性能。
提示
Device Sync支持两种同步模式:Flexible Sync 和较早的基于分区的同步。 如果您的App Services后端使用基于分区的同步,请参阅基于分区的同步- Node.js SDK。
我们建议新应用程序使用“灵活同步”。