2014-05-19 5 views
0

나는이 쿼리를 작동 시키려고 노력했으며 극도로 좌절하고 있습니다.조건부 몽구스 쿼리 작성

전달한 것과 일치하지 않는 이메일을 사용하여 이메일 또는 사용자 이름을 검색하려고합니다. 나는 searchstr을 전달하고 이메일을 보내고있다.

1 단계까지 도달하면 정의되지 않은 오류가 발생합니다. 내가 var query = user.find()을 제외한 모든 것을 주석으로 달아 도망 간다.

나는 또한 user.find({email:searchstr});을 시도했지만 쿼리가 아닌 작동하는지 확인했습니다.

내가 뭘 잘못하고 있니?

var friendlist = { friendslist: []}; 

var query = user.find(); 
query.or([{ email: searchstr }, { username: searchstr }]); 
//query.where(email); 
//query.ne(email); 

query.exec(function (err,users) { 
    if(err != null) {console.log(err); callback({'res': false});} 
    console.log('step1') 
    users.forEach(function (err,userss) { 
     if(err != null) {console.log(err); callback({'res': false});} 
     console.log('step2') 
     friendlist.friendslist.push({ 
        "profileURLImage" : userss.profile_pic_server, 
        "currentStatus" : userss.profile_status, 
        "userName" : userss.username, 
        "email" : userss.email, 
        "online_status" : userss.online_status 
       }); 
    }); 
}); 
+0

정확히 무엇이 작동하지 않습니까? 쿼리 조건은 "전자 메일"과 일치하려고 시도하고 false를 반환하면 "사용자 이름"과 일치하도록 시도합니다. –

+0

그것은 나에게 정의되지 않은 오류를 준다. 그러나 그것은 두 번째로 함수 나 함수를 주석 처리한다. –

+0

다른 사람들에게 질문을 명확히하기위한 샘플 문서를 보여주십시오. –

답변

0

나는 쿼리가 내가가 원하는 방식으로 작동되지 않았다 그러나 나는 사람이 내가 대답로 선택 것보다 작동하는 더 나은 대답을 줄 수 있다면, 그것에 대한 해결 방법을 얻을 수 있었다.

내가 실수 한 변수가 없기 때문에 내가 만든 주요 실수는 forEach에있었습니다.

var friendlist = { friendslist: []}; 

var query = user.find(); 
query.or([{ email: searchstr }, { username: searchstr }]); 
//query.where(email); 
//query.ne(email); 

query.exec(function (err,users) { 
    if(err != null) { console.log('error'); console.log(err); callback({'res':false});} 
    users.forEach(function (userss) { 
     if(userss.email != email) { 
      friendlist.friendslist.push({ 
        "profileURLImage" : userss.profile_pic_server, 
        "currentStatus" : userss.profile_status, 
        "userName" : userss.username, 
        "email" : userss.email, 
        "online_status" : userss.online_status 
       }); 
     } 
    }); 
    callback({'friends': friendlist.friendslist, 'res':true}); 
});