MongoDB 쿼리 언어
- null = 결측치
- $regex = 패턴이 일치하는 문자열 조회 (정규식)
※ 정규식 표현 기본
/ = 문자열의 구분자, ^ = 문자열의 처음, $ = 문자열의 끝,
. = 일치하는 문자열이 있는지 (\n으로 나눠진 뒷부분 제외),
* = 해당 문자열이 0번 이상 반복되어 나오는지 (\n으로 나눠진 뒷부분 포함)
ex) /123$/ = 123으로 끝나는 문자열 조회, /^abc/ = abc로 시작하는 문자열 조회
- $options = $regex 뒤에 혼용하며 정규식 옵션을 지정할 수 있음
※ m = 문자열이 여러 줄일 경우 각 줄마다 조회, i = 대소문자 구분 X, x = 문자열 공백 무시,
s = 정규식 표현중 .을 이용할 때 \n으로 구분된 부분도 포함해서 옵션 적용 (s는 si, sx처럼 단독으로 쓰이지 않음)
※ $options을 입력할 필요없이 $regex로 문자열 조건 입력시 맨 뒤에 입력하여도 $options이 적용
ex) $regex: /^abc/, $ options: 'm' = $regex: /^abc/m
- $where = this나 obj를 이용하여 해당 콜렉션의 키를 조회하여 조건을 설정할 수 있음(일반 쿼리보다 속도가 현저히 느려 꼭 필요한 경우가 아니라면 사용하지 말 것)ex) $where: "this.english == this.maths"
커서(Cursor)
- find 메서드는 결과값으로 문서가 아닌 커서를 반환 (find 이외의 메서드에서는 커서를 반환하지 X)
- find().limit() = 반환할 커서의 개수 지정 (상한만 가능하고 하한은 불가능)
- find().skip() = 출력되는 커서 중 건너뛸 커서의 개수 지정 (맨 앞부터)
- find().sort() = 정렬 방향 결정 (1:오름차순, -1:내림차순)
- limit, skip, sort를 혼합하여 입력 가능 (입력 순서 상관 X)
ex> find.limit().sort().skip()
인덱스(Index)
- DB의 검색을 빠르게 하기 위하여 데이터의 순서를 미리 정리해 두는 과정
- db.콜렉션명.createIndex(적용할 키:숫자) = 인덱스 적용 (양수:오름차순, 음수:내림차순)
- db.콜렉션명.getIndexes() = 인덱스 조회
- db.콜렉션명.dropIndex() = 지정 인덱스 삭제
- db.콜렉션명.dropIndexes() = 모든 인덱스 삭제
- 인덱스를 적용하면 쓰기, 삽입, 갱신, 삭제 과정의 처리 시간이 더 오래걸림
- hint() = 강제로 인덱스 지정
'빅데이터 부트캠프 > MongoDB' 카테고리의 다른 글
빅데이터 부트캠프 51일차 (0) | 2022.09.16 |
---|---|
빅데이터 부트캠프 50일차 (0) | 2022.09.15 |
빅데이터 부트캠프 46일차 (MongoDB) (0) | 2022.09.07 |
빅데이터 부트캠프 46일차 (NoSQL) (1) | 2022.09.07 |
댓글