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

从客户端应用程序中查询 Atlas

在此页面上

  • 何时使用 MongoDB 数据访问
  • 设置
  • 创建 App Services App
  • 添加身份验证提供者
  • 向集合添加规则
  • 向集合添加模式和筛选器(可选)
  • 从客户端应用程序查询

您可以使用标准 MongoDB 查询语言 (MQL) 语法和 Realm SDK 中的MongoDB 数据访问功能,从客户端应用程序查询链接的 MongoDB Atlas 集群中的数据。

MongoDB 数据访问通过实施应用的基于角色的访问权限、查询过滤器和文档模式来保护数据安全。借助这些功能,您可以使用 MQL 构建复杂的客户端查询,同时您的数据在服务器上始终安全。

在以下情况下,您可能希望在应用程序中使用MongoDB数据访问:

  • 您想要使用MongoDB驱动程序等API

  • 您希望在客户端代码中而不是在服务器上写入数据库查询

  • 您希望从客户端设备构建即席查询。

在以下情况下,您可能希望在应用程序中使用MongoDB Data Access而不是Atlas Device Sync

  • 您正在查询的文档未在 Realm 数据库中建模或无法在Realm数据库中建模。

  • 您想要访问未同步的集合。

  • 您不希望在本地持久保存数据。

  • 您正在使用Realm Web SDK,该 SDK 不支持Realm数据库或Device Sync。

作为客户端场景中MongoDB数据访问的替代方案,您可以使用Atlas Data API。

只要客户端应用程序的编程语言具有 HTTPS 客户端,您也可以在没有 Realm SDK 的情况下使用这些 API。 但是,这些 API 不具有与 Realm SDK 的 MongoDB 数据访问相同的类型安全 MQL 语法。

作为服务器端场景中MongoDB数据访问的替代方案,您可以使用以下方法:

  • MongoDB驾驶员。 使用MongoDB驾驶员连接到Atlas是普遍推荐的服务器端方法,因为与通过App Services连接相比,驱动程序性能更高、更灵活。 如果应用App Services规则应用于驾驶员操作,则可以使用App Services传输协议。

  • Atlas Data API

要通过 Realm SDK 使用 MongoDB 数据访问,必须执行以下设置。

1

使用链接的 MongoDB 数据源创建 App Services App。

要学习;了解有关应用创建的更多信息,请参阅创建应用关联数据源。

2

为应用添加至少一个身份验证提供者程序。 所有MongoDB数据访问查询运行在经过身份验证的用户上下文中运行。 要学习;了解有关启用用户身份验证的更多信息,请参阅身份验证提供者。

3

为了保护客户端查询的安全,您必须为结合Atlas App Services MongoDB数据访问使用的任何集合添加 规则。要了解如何向集合添加规则,请参阅定义角色和权限。

如果不为集合添加规则,那么客户端对集合的每个请求都会失败。

4

除了规则之外,您还可以为使用 MongoDB 数据访问查询的集合添加模式和过滤器。

模式定义应用的数据模型并根据该模型验证文档。 使用筛选器确保客户端仅将与模式匹配的数据写入数据库。

筛选器会在将MongoDB查询发送到数据库之前对其进行修改,以便查询仅返回结果的子集。 示例,您可以定义一个修改查询的过滤,以便用户只能访问权限他们写入的数据。

虽然模式和过滤器不是使用 MongoDB 数据访问所必要的,但您应该为大多数生产使用案例添加模式和过滤器。

5

有关如何从 Realm SDK 查询 MongoDB 的说明,请参阅 Realm MongoDB 数据访问文档:

这些 Realm SDK支持 MongoDB 数据访问:

  • C++ SDK

  • Flutter SDK

  • Kotlin SDK

后退

CRUD 和聚合 API