본문 바로가기

WEB

Node.js로 웹서비스 만들기 22일차

정규식

/abc/  의 형식으로 // 사이에 작성하는데

/abc/라고 작성하면 abc라는 문자가 들어있냐 라는 뜻이라고 한다.

 

그런데 여기서 문제는

게시물이 1억개 일때 // 이것들을 다 찾으려면 시간이 오래 걸린다는 것이다

 

그래서 

Binary Search 방식을 사용한다.

 

예를들어

1~100 중의 한 숫자를 찾을때

1인가요? -> NO

2인가요? -> NO

3인가요? -> NO

......

이렇게 하나씩 물어보는게 아니라

 

50이상인가요? -> YES

75이상인가요? -> YES

87이상인가요? -> NO

...

이렇게 범위를 절반씩 쪼개서 찾는 방법이라고 함

 

바이너리서치를 적용하려면

데이터가 미리 숫자순으로 정렬이 되어 있어야 한다.

 

몽고디비는 기본적으로 _id 순으로 정렬이 되어있다.

그래서 _id로 찾을때 바이너리 서치 해줌

 

그런데 "제목"을 검색할 때는 미리 정렬되어있는 상태가 아니기 때문에 가나다 순으로 미리 정렬을 해둬야 함

그 기능이 바로 인덱싱(indexing) 이다.

 

 

cloud.mongodb.com 에 들어가서

검색하고 싶은 컬렉션의 indexes 탭으로 이동

우측의 create index를 클릭한다

 

제목 을 문자 순서로 검색할테니 위와 같이 작성한 뒤 Review 클릭

 

뭐 이런 항목이 하나 생성된다.

 

다음 포스팅에 계속됨