MongoDB Mongoose & Node.js 정규표현식을 사용하여 일치하는 데이터 찾기

준그 임돠·2021년 6월 29일
0

MongoDB Mongoose 검색 기능

Finder 검색 기능은 Landing Page 에서 검색 창의 OnChange 되는 단어들을 body부분으로 감싼 후 백엔드에 보내는 식이다.

  • SQL의 like 를 구현하고 싶어 수정하였다.

수정 전 코드

Product.find()
      .find({ $text: { $search: term } })

like 의 %term% / term% / %term 기능을 사용하고 싶어 검색해 본 결과 regex로 변경하였다.

수정 후 코드

Product.find()
      .find({ title: { $regex: term, $options: "i" } })

대용량 처리 속도가 text 보단 regex 가 훨씬 높다고 나와있었고 테스트 실행결과 검색 속도가 2배 이상 빨라진건 느낄수 있었다.

MongoDB 참조문서

참조문서 에서도 나와있듯이 regex 는 연산자를 사용하여 문자열의 시작 부분에서 검색을 하지 않으므로 부분 텍스트를 검색할 수 있게되어 많은 패턴들을 받아올 수 있다.

하지만 text 전체 텍스트 인덱스로 받아 들여 부분적인 텍스트를 받아오지 못한다. 그래서 SQL like 쿼리처럼 사용을 못했던거 같다.

profile
기록 또 기록

0개의 댓글