2014-03-04 2 views
3

아래에 언급 된 쿼리가 있습니다.검색에서 Mongodb가 검색 쿼리

 var projstat = ['A' , 'B']; 
     Post.native(function(err, collection) { 

      if (err) 
       console.log(err); 

      collection.find({ 
       'status': { 
        "$in": projstat 
       } 
      }, {multi: true}, function(err, result) { 

       console.log(result); 
       if (req.isSocket) { 
        return res.json(result); 
       } 
      }); 
     }); 

아무런 결과가 반환되지 않으므로 잘못 입력했으면 제발 해결하십시오. 도와주세요.

+1

왜'멀티 사용합니까 : TRUE '를 자동으로 속성이 배열로 설정하는 in 쿼리를 수행하는 일반 워터 find를 사용할 수 있습니까? 그것을 제외하려고 시도 – anvarik

+0

처음에 나는 멀티를주지 않았다 : 사실, 여전히 결과를 얻지 못했습니다 .. 그래서 나는 그것을주는 것을 시도했다. – Mahahari

+0

당신은 문서를 수정하지 않고 있습니다. 멀티 옵션은 ​​당신이 그들 중 몇 개를 수정하고 싶을 때 사용됩니다 ... 어쨌든 콘솔에서 명령을 실행하려고합니까? – anvarik

답변

3

네이티브 find을 올바르게 사용하고 있지 않습니다. 오히려 인수로 콜백을 사용하는 것보다 (워터가하는 것처럼), 당신은 toArray에 대한 호출을 체인 및 인수로 콜백을 사용 : 기본 몽고 드라이버

collection.find({ 
    'status': { 
     "$in": projstat 
    } 
}).toArray(function(err, results) {...}); 

문서가 here이다.

그러나이 경우 중요한 점은 native이 전혀 필요 없다는 것입니다.

Post.find({status: projstat}).exec(function(err, results) {...}); 
관련 문제