트리거 제한 사항
이 페이지의 내용
도구 및 클라이언트가 트리거를 통해 MongoDB 와 상호 작용 하는 방식을 설계할 때 염두에 두어야 할 몇 가지 지침이 있습니다. 쿼리 구조화 방법을 결정하고, 사용할 CRUD 및 집계 작업을 선택하고, 동시 워크로드를 처리하다 하는 방법을 결정할 때 이 지침 을 염두에 두세요.
집계
트리거는 및 를 제외한 시스템 함수 의 모든 집계 파이프라인 단계 를 지원 $currentOp
$indexStats
합니다.
보안상의 이유로 사용자 함수에서는 집계 파이프라인 단계의 하위 집합만 지원됩니다.
사용 가능한 파이프라인 단계 목록과 허용되는 함수 컨텍스트 는 애그리게이션을 참조하세요.
배치 로드
데이터가 MongoDB Atlas 에 일괄/ 배치 로드되는 경우, Atlas 가 변경 사항을 처리하는 동안 기기에 데이터가 표시되는 데 지연이 발생할 수 있습니다.
Time Series 컬렉션
time series 컬렉션 에서는 데이터베이스 트리거 를 정의 할 수 없습니다 . 이는 time series 컬렉션이 아직 변경 스트림을 지원 하지 않기 때문입니다.
Serverless Instances
서버리스 인스턴스 에서는 데이터베이스 트리거를 정의할 수 없습니다. 이는 서버리스 인스턴스가 변경 스트림을 지원 하지 않기 때문입니다.
연합 데이터베이스 인스턴스
연합 데이터베이스 인스턴스 에서는 데이터베이스 트리거 를 정의 할 수 없습니다 . 이는 연합 데이터베이스 인스턴스가 변경 스트림을 지원 하지 않기 때문입니다.
변경 스트림
Atlas 는 클러스터의 크기에 따라 특정 클러스터 에 대해 열려 있는 총 변경 스트림 수를 제한합니다. 다음 표에는 각 클러스터 크기에 대한 제한 사항이 나열되어 있습니다.
클러스터 크기 | 최대 Change Streams 수 |
---|---|
프리 티어( M0 ) | 5 |
공유 클러스터( M2 /M5 ) | 10 |
소규모 전용 클러스터( M10 /M20 ) | 100 |
표준 클러스터( M30 /M40 ) | 1000 |
표준 클러스터( M50 - M90 ) | 1000 |
고성능 클러스터( M100+ ) | 1000 |
참고
Atlas 는 데이터베이스 trigger와 연결된 각 컬렉션 에서 단일 변경 스트림 을 엽니다.
데이터베이스 명령
유선 프로토콜 을 통해 MongoDB cluster 에 연결된 경우 데이터베이스 명령의 제한된 하위 집합을 호출할 수 있습니다. 지원되는 명령 목록은 데이터베이스 명령을 참조하세요.
참고
App Services 는 Atlas Function 에서데이터베이스 명령을 지원 하지 않습니다 .
MongoDB 버전 요건
MongoDB 버전 3.6 의 대부분의 CRUD 및 애그리게이션 기능에 액세스 할 수 있습니다. 그러나 트리거는 표준 도구 및 클라이언트에서 사용할 수 있는 모든 작업 및 기능을 지원 하지 않습니다. 트리거를 통해 MongoDB 에 연결할 때 사용할 수 있는 특정 MongoDB 작업 목록은 CRUD & 애그리게이션 API 참조를 참조하세요.
쿼리 옵션
트리거는 시스템 기능 의 모든 쿼리 옵션을 지원 합니다. 트리거를 통해 MongoDB 에 연결할 때 사용할 수 있는 특정 옵션 목록은 쿼리 옵션을 참조하세요.
쿼리 결과
트리거를 통해 실행되는 MongoDB 쿼리는 최대 50 000 문서를 반환할 수 있습니다. 더 많은 문서를 반환해야 하는 경우 쿼리 에 페이지 매김을 지정하는 것이 좋습니다.
요청 트래픽
Atlas 는 요청 트래픽을 다음 기본값으로 제한합니다.
10,000 동시 요청. 동시 요청 제한을 초과하는 요청은 429 - Too Many Requests HTTP 응답 상태 코드를 수신합니다.
Atlas 는 위 한도의 몇 배에 해당하는 요청을 처리하다 할 수 있습니다. 그러나 이러한 한도는 애플리케이션이 책임감 있게 확장하다 할 수 있도록 하고 DOS 공격과 의도하지 않은 요금 청구를 방지하기 위한 것입니다.
지원 티켓 을 제출하여 더 높은 한도를 요청 수 있습니다.
연결 풀링
Atlas 는 연결 풀링 을 사용하여 요청과 trigger 실행 간에 연결을 자주 열고 닫는 오버헤드 를 줄입니다. 필요에 따라 연결이 열립니다. 연결 풀링은 여러 요인에 따라 달라집니다.
클러스터 계층. 클러스터 계층이 높을수록 풀에서 더 많은 연결을 사용할 수 있습니다.
배포 모드. 글로벌 배포는 각 리전에서 여러 서버를 사용하므로 전체적으로 더 큰 연결 풀을 갖습니다.
서비스. 각 서비스에는 독립적인 연결 풀이 있으므로 앱의 서비스 수가 사용 가능한 연결 수에 영향을 미치지 않습니다.