2012-04-02 4 views
2

만 메타의 _id 및 데이터를 반환하는 것입니다 (안 제 분야,하지만 몽구스이 대표적인 사례가 있기 때문에) 그래서 mongoose embedd documents doc몽구스 내가 원하는 중첩 된 문서

을, 나는 어떤 _id에서 찾는 게 아니에요 특히, 난 meta.votes.length> 0 또는 meta.fans.length> 0으로 레코드를 찾고 있어요 현재 내가 할 :

Model.find({}, ['_id','meta'], function (err, data) { callback(null, data); });

내가 더/데이터/레코드를 얻을. 이 세트를 찾지 못하도록하는 대안이 그들을 걸러 낼 수있는 방법일까요?

편집 : 나는 일시적으로 내 문제를 해결 한 :이 (보여주는 결과를 숨기고 - 예를 들어 이전 데이터) 기능이 될 수도 있지만

use : { type: Boolean, default: 1 },

, 내가이 A/솔루션은 고려하지 않습니다를 /.

답변

1

글쎄 meta.votesmeta.fans은 둘 다 Number 객체이기 때문에 내가 원하는 것 같지 않습니다. meta.fans.length 그냥 int처럼 직접 액세스하십시오.

이 쿼리는 표> 0

Model.find({ "meta.votes" : { $gt : 0 } }, ['_id','meta']).exec(function(err, data) { 
    callback(null, data); 
}); 

에 딱 _id와 메타 정보를 검색한다 그리고이 쿼리는> 0

Model.find({ "meta.fans" : { $gt : 0 } }, ['_id','meta']).exec(function(err, data) { 
    callback(null, data); 
}); 

팬들을위한 단지 _id와 메타 정보를 검색해야합니다 그리고 당신은 할 수 다음과 같이 두 검색어를 모두 가져 오십시오.

Model.find({ $or : [ { "meta.votes" : { $gt : 0 } }, 
        { "meta.fans" : { $gt : 0 } } ] }, ['_id','meta']).exec(function(err, data) { 
    callback(null, data); 
}); 

like : { _id: 5001b3ce7cf4b534a3000002, meta: { votes: 1, fans: 1 } }

관련 문제