MongoDB sort() limit() skip()
2026년 8월 28일
MongoDB sort() limit() skip()
MongoDB find()가 만든 커서에 붙이는 체인 메서드 셋. 결과의 순서·개수·시작 위치를 정한다.
JavaScript
쓰는 순서와 실행 순서가 다르다
Mermaid스크롤로 확대 · 드래그로 이동
체인을 어떤 순서로 쓰든 서버는 항상 sort → skip → limit로 처리한다. .limit(10).sort(...)라고 써도 정렬 후 10개다.
sort()
JavaScript
Python
| 값 | 뜻 |
|---|---|
1 | 오름차순 (작은 것부터) |
-1 | 내림차순 |
정렬에는 인덱스가 필요하다. 없으면 메모리에서 정렬하는데 MongoDB는 32MB 상한을 두고, 넘으면 쿼리를 거부한다(
Sort exceeded memory limit). 정렬 필드는 복합 인덱스에 포함시킨다.
limit()
JavaScript
limit(0)은 "제한 없음"이다. 0건이 아니다.
skip()
JavaScript
TEXT
깊은 페이지일수록 선형으로 느려진다. 무한 스크롤·로그 조회에는 마지막 키 기준(keyset)을 쓴다.
JavaScript
자세한 비교는 MongoDB 커서와 페이지네이션.
집계에서는 stage로
JavaScript
이름만 $가 붙고 의미는 같다. 다만 집계에서는 쓴 순서대로 실행되므로 $sort를 뒤에 두면 정말 뒤에 정렬한다.
한 줄 정리
체인 순서와 무관하게 sort → skip → limit로 실행되고, sort에는 인덱스가, 깊은 skip에는 keyset이 필요하다.
관련
- MongoDB find()
- MongoDB 커서와 페이지네이션
- 복합 인덱스
- MongoDB Aggregation Pipeline
- SELECT 문법
- MongoDB CRUD 메서드