Docs 菜单

Docs 主页Atlas App Services

连接到 MongoDB 数据源

在此页面上

  • 概述
  • 读取、写入和聚合数据
  • 保护和验证数据
  • 自动同步数据
  • 对变化的数据做出反应
  • 链接数据源
  • 导航到数据源管理屏幕
  • 链接新的数据源
  • 保存链接的数据源
  • 拉取最新版本的应用程序
  • 创建数据源配置目录
  • 添加数据源配置文件
  • 部署数据源配置
  • 数据源限制
  • Atlas Data Federation
  • 无服务器实例

数据源表示与应用程序位于同一项目中的MongoDB Atlas实例。您可以使用数据源来存储和检索应用程序的数据。

大多数应用连接到单个数据源,但如果您的数据分布在多个实例中,您可以配置多个数据源。为关联到应用的每个数据源定义一个唯一名称,在整个应用中使用该名称引用相应的数据源。

数据源请求是通过 Atlas App Services 路由的。因此,App Services 自动打开和关闭数据库连接。这意味着,在使用数据源时,您无需担心调用 db.close() 的问题。

注意

后端加密

App Services 与 Atlas 之间的所有内部通信均使用 x509 证书进行加密。

您可以从服务器端函数读写数据源中的数据,或从客户端应用程序连接。使用标准 MongoDB 查询语法编写查询。

exports = async function() {
const mongodb = context.services.get("mongodb-atlas");
return mongodb
.db("myDatabase")
.collection("myCollection")
.findOne()
}

要了解如何在 Atlas Function 中使用数据源,请参阅以下指南:

要了解如何从 Realm SDK 中使用数据源,请参阅从客户端应用程序中查询 Atlas

注意

链接的数据源并不支持所有 MongoDB CRUD 和聚合操作。由于模式验证和数据访问规则的开销,在您以特定用户身份查询 MongoDB 时,无法使用某些操作。您可以改为以系统用户身份查询 MongoDB 以绕过一些限制。

有关支持的操作的更多信息,请参阅 CRUD 聚合 API

数据源允许您为它们包含的数据定义访问规则文档模式。规则动态授权用户读取和写入数据子集,模式控制每个文档的结构和内容。

默认情况下,对关联数据源的读写操作是安全的。除非规则明确允许,否则用户无法读取或写入任何数据。授权用户插入或修改的任何数据必须符合相应的模式。

如果不为集合定义规则,对集合的查询将失败。这意味着,您可以在客户端应用程序中安全地公开正确配置的数据源接口,而不会有数据损坏或泄漏的风险。

Atlas Device Sync 应用程序存储数据,并将数据更改同步到链接的集群(称为同步的集群)。同步协议确保您的数据最终在所有同步客户端和同步的集群中保持一致。

要了解有关 Atlas Device Sync 及其如何与应用程序数据源交互的更多信息,请参阅 Atlas Device Sync

注意

Sync 需要使用 4.4 版本

要使用 Atlas Device Sync,您的集群必须运行 MongoDB 4.4 或更高版本。

您可以创建响应数据更改而运行函数的数据库触发器。触发器使用 MongoDB 变更流观察数据源,只要变更事件与触发器配置匹配,就会执行函数。触发器函数可以运行任意代码,并且可以访问变更事件以获取有关导致其运行的变更的详细信息。

要详细了解触发器的工作原理以及如何定义您自己的触发器,请参阅数据库触发器

重要

触发器仅适用于支持变更流的数据源。无法在联合数据库实例或无服务器 Atlas 实例上定义触发器。

应用程序中配置的数据源链接 到 Atlas 中的底层实例。您可以将多个实例链接到应用程序,甚至创建多个链接到同一底层实例的数据源。

您可以在 App Services 用户界面中配置新的链接数据源,也可以使用 App Services CLI 或 GitHub 部署定义和推送配置文件以进行配置:

关联数据源可以代表多个 MongoDB Atlas 实例类型之一。根据底层实例的类型,并非所有功能都支持。

关联数据源后,无法更改底层实例类型。不过,您可以将新数据源与另一个实例类型建立关联。

您可以将联合数据库实例作为 MongoDB 数据源链接到您的应用程序。但是,在使用 Atlas Data Federation 时,需要记住一些注意事项:

您可以将无服务器实例作为 MongoDB 数据源链接到您的应用程序。但是,无服务器实例目前不支持变更流,因此以下功能受到限制:

  • 您无法在无服务器实例上创建数据库触发器

  • 您无法将无服务器实例作为应用程序的 Device Sync 集群。

  • 您无法监视作为无服务器 MongoDB Atlas 实例的更改数据源集合。

← Okta JWT 身份验证(自定义 JWT)