从客户端应用程序中查询 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数据访问使用的任何集合添加 规则。要了解如何向集合添加规则,请参阅定义角色和权限。
如果不为集合添加规则,那么客户端对集合的每个请求都会失败。