2017-04-01 1 views
0

저는 노드 js와 몽구스를 처음 사용하며이 쿼리를 사용하고 있습니다.mongoose 쿼리 된 문서에서 중첩 된 필드 값 가져 오기

exports.getIndividual=(matchId,phone)=> 
new Promise((resolve,reject)=>{ 
var e="matchPersonal.m"+matchId+".bo1"; 
query={}; 
query[e]=1; 

var quer=usersc.findOne({phone:"8989898980"}).select(query); 
quer.exec(function (err, matc) { 

var m=matc.toObject(); 

console.log('',m); 

내가이 일을 내 콘솔에서 얻을이 쿼리를 실행하면

 {matchPersonal:{m1:{bo1:3}}} 

하지만 난 그냥 내 출력으로 삼을 필요로하고 내가 개체 속성을 읽을 도트 연산자를 사용하지 못할 직접 때문에

'+'는 이렇게 도와주세요 여기에 사용 질수으로
var b=matchPersonal.m+matchId.bo1 

나던 작업

답변

0

시도 :

var mNum = m+matchId; 
var b=matchPersonal[mNum].bo1 

도트와 괄호로 속성을 선택할 수 있기 때문에 괄호도 변수와 함께 사용할 수 있습니다.

+0

m1은 m + matchId가 정의되지 않았지만 matchPersonal.m1.bo1과 같이 만들면 내 결과가 3이되므로 내 스키마에도 문제가 없습니다. –

+0

감사합니다. 청소 한 후 작동합니다. 내 캐시 및 mNum = "m"+ matchId가 없기 때문에 m은 정의되지 않습니다. –

관련 문제