클라이언트 앱에서 Atlas 쿼리
이 페이지의 내용
Realm SDK의 MongoDB 데이터 액세스 와 함께 표준 MongoDB 쿼리 언어(MQL) 구문을 사용하여 클라이언트 애플리케이션에서 연결된 MongoDB Atlas 클러스터의 데이터를 쿼리할 수 있습니다.
MongoDB Data Access는 앱의 역할 기반 액세스 권한, 쿼리 필터 및 문서 스키마를 적용하여 데이터를 보호합니다. 이러한 기능을 사용하면 데이터가 서버에서 안전하게 유지되는 동안 MQL로 복잡한 클라이언트 측 쿼리를 구성할 수 있습니다.
MongoDB 데이터 액세스를 사용해야 하는 경우
다음과 같은 경우 애플리케이션 에서 MongoDB 데이터 액세스를 사용할 수 있습니다.
MongoDB 드라이버와 같은 API 를 사용하려는 경우
서버 가 아닌 클라이언트 코드에서 데이터베이스 쿼리를 쓰기 (write) 하려는 경우
클라이언트 장치에서 임시 쿼리를 구성하려고 합니다.
다음과 같은 시나리오에서는 애플리케이션 에서 Atlas Device Sync 대신 MongoDB Data Access를 사용할 수 있습니다.
Realm 데이터베이스에서 모델링할 수 없거나 모델링할 수 없는 문서를 쿼리하고 있습니다.
동기화되지 않은 컬렉션에 액세스하려고 합니다.
데이터를 로컬에 유지하고 싶지 않습니다.
데이터베이스 또는 를 Realm Web SDK 지원 하지 않는 를 사용하고 Realm Device Sync 있습니다.
클라이언트 사이드 시나리오에서 MongoDB 데이터 액세스의 대안으로 Atlas Data API 를 사용할 수 있습니다.
언어에 HTTPS 클라이언트가 있는 한 클라이언트 앱의 프로그래밍 언어에 대해 Realm SDK 없이 이러한 API를 사용할 수도 있습니다. 그러나 이러한 API는 Realm SDK의 MongoDB 데이터 액세스와 동일한 유형 안전 MQL 구문을 갖추고 있지 않습니다.
서버 측 시나리오에서 MongoDB 데이터 액세스의 대안으로 다음을 사용할 수 있습니다.
MongoDB 운전자. App Services 를 통해 연결하는 것보다 드라이버의 성능이 더 뛰어나고 유연하므로 MongoDB 운전자 를 사용하여 Atlas 에 연결하는 것이 일반적으로 권장되는 서버 측 접근 방식입니다. 운전자 작업에 App Services 규칙을 적용 App Services 유선 프로토콜을 사용할 수 있습니다.
Atlas Data API
설정
Realm SDK에서 MongoDB 데이터 액세스를 사용하려면 다음 설정을 수행해야 합니다.
App Services 앱 만들기
연결된 MongoDB 데이터 소스를 사용하여 App Services App을 만듭니다.
앱 만들기에 학습 보려면 앱 만들기 및 데이터 소스 연결을 참조하세요.
인증 제공자 추가
앱에 인증 제공자 를 하나 이상 추가합니다. 모든 MongoDB 데이터 액세스 쿼리는 인증된 사용자의 컨텍스트에서 실행 됩니다. 사용자 인증 활성화에 학습 보려면 인증 제공자를 참조하세요.
컬렉션에 규칙 추가
클라이언트 사이드 쿼리를 보호하려면 MongoDB Data Access와 함께 사용하는 모든 컬렉션에 App Services 규칙을 추가해야 합니다. 컬렉션에 규칙을 추가하는 방법을 알아보려면 역할 정의 및 권한을 참조하세요.
컬렉션에 규칙을 추가하지 않으면 클라이언트가 보내는 컬렉션에 대한 모든 요청이 실패합니다.
컬렉션에 스키마 및 필터 추가(선택 사항)
MongoDB Data Access로 쿼리하는 컬렉션에 규칙 외에도 스키마 및 필터를 추가할 수도 있습니다.
스키마 는 앱의 데이터 모델 을 정의하고 이에 대해 문서의 유효성을 검사합니다. 필터를 사용하여 클라이언트가 스키마 와 일치하는 데이터만 데이터베이스 에 쓰기 (write) 도록 합니다.
필터 는 MongoDB 쿼리를 데이터베이스 로 전송하기 전에 수정하여 쿼리가 결과의 하위 집합만 반환하도록 합니다. 예를 예시 사용자가 자신이 작성한 데이터에만 액세스 할 수 있도록 쿼리를 수정하는 필터하다 를 정의할 수 있습니다.
MongoDB Data Access를 사용하는 데 스키마와 필터가 반드시 필요한 것은 아니지만, 대부분의 프로덕션 사용 사례에 스키마와 필터를 추가해야 합니다.