定义数据模型
概述
应用的数据模型是对应用所使用的数据的描述。数据模型确保数据符合特定结构,仅包含有效值,并且仅按预期方式进行更改。
数据模型由多个组件组成,包括:
一组用于描述应用程序数据类型的声明性模式。
定义架构之间逻辑连接的一组关系。
一组静态值,可用于定义全局常量、环境值和密钥值。
一组基于规则的查询过滤器,可用于将 MongoDB 动态地限制为给定请求的所有数据的子集。
定义应用的数据模型是配置和使用 Device Sync 的关键部分。无需定义数据模型即可使用其他 App Services。然而,数据模型解锁了许多强大功能,可以节省您的时间,让您专注于构建功能,而不是编写样板代码。
例如,定义数据模型后,您可以使用应用管理工具以您的本机编程语言自动生成可同步的 Device SDK 对象模型。要了解更多信息,请参阅生成 SDK 对象模型。
文档模式
文档模式是一个 JSON 对象,它定义了应用使用的特定类型的数据的结构。文档模式描述了文档具有哪些字段,这些字段包含的值的类型,以及使值更改生效所必须满足的条件。
您可以在集合级别定义模式。这意味着您将每个模式与该类型文档的特定 MongoDB 集合相关联。模式使用 JSON schema标准的超集,其中包括对 MongoDB 内置 BSON 类型的支持,这使您能够在 MongoDB 中完整描述数据。
每当数据写入 MongoDB 时,您的应用都会在运行时强制执行模式。这包括从 API 服务、功能或 Device Sync 执行插入、更新和删除操作。
要了解详情,请参阅架构。
关系
关系是两个文档模式之间的连接,使您能够将一个文档与零个或多个其他文档逻辑关联。
在关系中,“源”文档存储对相关文档的引用,例如相关文档 _id
值的列表。 使用 Device Sync 时,App Services 会自动解析对相关文档的引用,以便您可以直接查询。
要了解详情,请参阅关系。
值和密钥
值是一个命名常量,您可以在整个应用中通过名称以各种方式访问该常量。例如,您可以使用一个值来定义外部 API 服务的基本 URL,然后在各种函数定义中引用该值,而非复制基本 URL。
您还可以定义环境值,该值可以根据应用程序的环境标签加以变更。例如,您可以在开发和生产环境中使用不同的基于 API 的 URL。
对于 API 密钥等敏感信息,您可以定义一个已命名的密钥值。密钥值在定义后永远不会直接公开。相反,您可以在配置文件和规则表达式中按名称引用它们。
如要了解详情,请参阅值和密钥。
查询过滤器
查询过滤器将数据源上的读取和写入操作限制为该查询过滤器包含的所有数据的子集。查询过滤器是标准的 MongoDB 查询和投影对象,它们在发送到数据源之前会自动连接到操作。
过滤器是动态的,可以根据运行操作的用户或其他执行信息来应用不同条件。向集合添加过滤器允许您根据上下文限制访问,并可提高大型数据集的查询性能。
要了解详情,请参阅过滤传入查询。