从客户端应用程序中查询 Atlas
您可以使用标准 MongoDB 查询语言 (MQL) 语法和 Realm SDK 中的MongoDB 数据访问功能,从客户端应用程序查询链接的 MongoDB Atlas 集群中的数据。
MongoDB 数据访问通过实施应用的基于角色的访问权限、查询过滤器和文档模式来保护数据安全。借助这些功能,您可以使用 MQL 构建复杂的客户端查询,同时您的数据在服务器上始终安全。
何时使用 MongoDB 数据访问
在以下情况下,您可能希望在应用程序中使用 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 数据访问,必须执行以下设置。
添加身份验证提供者
为应用添加至少一个身份验证提供者。所有 MongoDB 数据访问查询都在经过身份验证的用户上下文中运行。要了解有关启用用户身份验证的更多信息,请参阅身份验证提供程序。
向集合添加规则
为了保护客户端查询的安全,您必须为结合Atlas App Services MongoDB数据访问使用的任何集合添加 规则。要了解如何向集合添加规则,请参阅定义角色和权限。
如果不为集合添加规则,那么客户端对集合的每个请求都会失败。