[MongoDB 기초부터 실무까지] 9. Index, Paging(skip, limit)
이 포스팅은 아래의 강의를 참고한 개인 정리본이니 강의를 통해 공부하시는 것을 추천드립니다.
mongoDB 기초부터 실무까지(feat. Node.js) - 인프런 | 강의
mongoDB, NoSQL 요즘 많이 들리지만 아직은 낯선 데이터베이스인가요? 관계형 데이터베이스(RDS/SQL)처럼 사용하고 계시지는 않으신가요? 아무리 좋은 기술도 올바르게 사용하지 않으면 역효과가 발
www.inflearn.com
1. Index
- Index : 탐색을 빠르게 해줄 수 있는 기능. ex) 서적의 목차, 책갈피와 비슷
Index를 사용하면 데이터를 조회하는데 시간이 단축되며, 정렬도 Index에서 설정해둔 정렬로 된다.
하지만 데이터를 생성, 수정,삭제 시에 인덱스도 같이 생성, 수정, 삭제해줘야 하기 때문에 CUD 는 느려진다.
> 인덱스는 적당히 사용하는 것이 좋음
복합키를 사용하고 싶다면 아래 사진의 표시된 부분을 클릭해 필드를 추가하면 된다.
이후에 데이터를 조회할 때 인덱스에 등록하는 필드 순서대로 해야 인덱스 스캔이 가능하다.
* mongoose를 이용해서 Index 생성하기
필드 내에 index를 선언할 수도 있으며 Schema 바깥에서 index를 선언할 수 있다.
(복합키의 경우 바깥에서 해야함)
참고) text Index라고 있는데, 문자열로 된 필드를 빠르게 찾을 수 있도록 도와주는 Index이며, 한 콜렉션 당 하나의 인덱스만 생성 가능하다.
2. Pagination
MongoDB에서의 Paging처리 방법은 아래와 같은 흐름으로 진행된다.
.find(...) .sort(...) .skip(...).limit(...)
.sort() : 데이터를 정렬
.skip() : 데이터의 일부를 건너뛰고 조회
.limit() : 조회할 데이터의 양
3. 정렬, 페이징을 이용해서 Board 데이터 조회