본문 바로가기

JS/NodeJS

MongoDB 문장 속에 있는 일치하는 단어 정규식으로 찾기 in Node js

node js에서 정규식에 사용자가 보낸 data를 쓰려면 new RegExp라는 객체의 정규표현식 함수를 쓰면 된다. 다른 방법으로는 변수에 정규 표현식을 작성해주면 된다.


ajax의 url에 설정된 path와 일치하는 함수에 data:{keyword:keyword}로 data를 넘겨주면 아래와 같이 req.body.keyword로 값을 받을 수 있다.


aggregate 함수를 사용해서 해당 "field"라는 field에서 정규 표현식에 매칭되는 data들을 results에 넣어 반환 받는다.

res.send로 ITnewbieSearch 함수를 호출한 ajax에 가서 results를 쓸 수 있게 해준다.


앞에 있던 뒤에 있던 가운데에 있던 어디에 껴있던 상관 없이 해당 단어를 찾고 싶다면 그냥 keyword만 쓰면 된다.

1
2
3
4
5
6
7
8
9
10
var ITnewbieSearch=function(req,res){
    var database=req.app.get('database');
    var keyword=req.body.keyword; //Ajax에서 post 형식으로 data를 전달해 줌 
    console.log(keyword);
    console.log('ITnewbieSearch 호출됨');
    database.JobModel.aggregate([{$match:{field:{$regex:new RegExp('^'+keyword)}}}],function(err,results){
        res.send(results);
    });
 
}
cs




http://oneshottenkill.tistory.com/308


https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/%EC%A0%95%EA%B7%9C%EC%8B%9D