Google AdSense (text)

hidden logo stop

Moving

거지 같은 이글루스 광고노출 정책이 싫어서,
새 보금자리(http://blog.leocat.kr/)로 이사감.

[MongoDB] MongpDB에서 RDB의 like 검색 Computer & Program

MongoDB에서 RDB에서 유용하게 쓰던 like 검색이 하고 싶어졌다.
방법은 겁나 간단.. find()할 때 문자열 대신 그 regex를 줘서 맞는지 체크하도록 하면 된다.

select * from user where name like '%ig%';


db.user.find({"name":/ig/});
db.user.find({"name":/.*ig.* /}); # 두번째 slash(/) 앞에 공백을 지워야 함 (블로그가 이상해서 붙여쓰니 치환이 되어 버리네..)

두 방법 모두 가능한데, .*을 안 붙여준건 일부만 매칭돼도 찾아주기 때문이다. 만일 아래처럼 "Mi"로 시작하거나 끝나는 사용자를 찾으려면 정규식의 '^'와'%$'를 잘 사용해 보자.

select * from user where name like 'Si%';
    =>
db.user.find({"name":/^Si/});

select * from user where name like '%gel';
    =>
db.user.find({"name":/gel$/});


하지만!! MongoDB는 document DB이기 때문에 성능은 장담 못 함.. index에 따라 다를지도..

덧글

댓글 입력 영역

Google AdSense (text/image)