본문 바로가기
블로그 이미지

방문해 주셔서 감사합니다! 항상 행복하세요!

  
   - 문의사항은 메일 또는 댓글로 언제든 연락주세요.
   - "해줘","답 내놔" 같은 질문은 답변드리지 않습니다.
   - 메일주소 : lts06069@naver.com


몽고DB/Java 몽고DB

몽고 db에서의 특수문자 검색(Mongodb 특수문자)시 유의사항

야근없는 행복한 삶을 위해 ~
by 마샤와 곰 2020. 7. 29.

몽고db에서 저장 되어있는 특수문자를 조건을 통해서 조회하는 방법입니다.

먼저 샘플 컬렉션 입니다.

위 내용의 컬렉션이 있다고 가정하여 봅니다.

 

일반적으로 몽고db와 관련된 DBMS나 콘솔에서는 아래 사진처럼 쉽게 가능 합니다.

도큐먼트의 name 속성에 대해서 "(주)" 가 있는 내용을 검색하여 보겠습니다.

regex 연산자를 통해서 like 처럼 검색하여 보았습니다.

 

어렵지 않는 내용입니다. 따로 안될것이라 생각하지도 않는 내용입니다.

그러면 위 내용을 토대로 Java에서 실행하여 보겠습니다.

같은조건인데 값이 없습니다;;

 

같은 조건으로 검색했는데 값이 없습니다.

물론 값이 나오는 경우도 존재합니다만, 위와 같이 특수문자에 의해서 조건이 안되는경우가 있습니다.

또한 검색을 하는데 결과가 없는 것이 아니라 오류가 발생하는 경우도 존재 합니다.

아니..이것은 Pattern 오류!

 

Java에서 replaceAll을 하는 경우에 종종 만나는 패턴과 관련된 오류 입니다.

사용한 소괄호의 값이 Java에서는 메타문자로 사용되기 때문 입니다.

위 내용을 토대로 고려하여보면, Java에서 Mongodb로 조회하는 경우에는 특수문자에 대한 처리가 필요하다는 것을 알 수 있습니다.

특수문자에 대해서 처리하는 방법은 매우 간단합니다.

역슬래쉬(\\)를 2개 붙여줍니다.

 

단순하게 역슬레쉬(\\) 2개를 붙여줌으로써 문제가 해결된 것을 볼 수 있습니다.

몽고DB에서 특정 데이터를 조회하는 경우, 조건에 특수문자가 들어가면 역슬래쉬를 붙여서 발생가능한 문제를 예방하는 것이 좋을 것 같습니다!

이상으로, 몽고db에서 특수문자를 검색하는 경우 유의해야되는 점에 대해서 살펴 보았습니다.

 

반응형
* 위 에니메이션은 Html의 캔버스(canvas)기반으로 동작하는 기능 입니다. Html 캔버스 튜토리얼 도 한번 살펴보세요~ :)
* 직접 만든 Html 캔버스 애니메이션 도 한번 살펴보세요~ :)

댓글