2012-10-23 2 views
-2

nodejs와 mongodb를 사용합니다. 나는 입술의 각 [X] 또 다른 키 값 쌍에 밀어 싶습니다객체를 이미 존재하는 자바 스크립트 객체에 푸시

[ 
    { 
     "username": "dan", 
     "_id": "508179a3753246cd0100000e" 
    }, 
    { 
     "username": "mike", 
     "_id": "508317353d1b33aa0e000010" 
    } 
] 
} 

:

Profile.find(search,['_id', 'username'],function(err, res) 

인쇄 입술 모양 :

나는 다음과 같은 MongoDB의 쿼리에서 사전 고해상도를 얻을 수 :

[ 
    { 
     "username": "dan", 
     "_id": "508179a3753246cd0100000e", 
     "more info": { 
      "weight": "80", 
      "height": "175" 
     } 
    }, 
    { 
     "username": "mike", 
     "_id": "508317353d1b33aa0e000010" 
    }, 
    "more info": { 
     "weight": "80", 
     "height": "175" 
    } 
] 
} 

나는 시도했다 :

dic[x]=res[x] dic[x]["more info"] = {"wight" : weight, "height" : hight} x=x+1 } while (x<res.length){ dic[x] = {}

var x=0 dic = [] 16,하지만 무시하고 내가

[ 
    { 
     "username": "dan", 
     "_id": "508179a3753246cd0100000e" 
    }, 
    { 
     "username": "mike", 
     "_id": "508317353d1b33aa0e000010" 
    } 
] 
} 

당신의 도움을 주셔서 감사합니다 수 있습니다.

+0

(http://stackoverflow.com/editing-help) –

+0

무게와 높이를 철자 할 수 없다? :) x가 정의되는 곳은 어디입니까? 증분되는 곳은 어디입니까? – epascarello

답변

0

for 루프를 대신 사용하십시오.

for (var x = 0, len = res.length; x < len; ++x) { ... } 

는 먼저 변수 x (var x = 0)를 초기화하고 루프 (++x 또는 x += 1)의 각 실행 후을 증가시킬 필요가있다.

업데이트 :

오, 좋아. 그런데 왜 새로운 배열 (dic)을 만드는 이벤트입니까? JavaScript의 객체는 참조로 전달되므로 개별 결과 (res [0], res [1]) 만 수정하면 동일하게 나타납니다.

dic[x] = {}; dic[x] = res[x] 새 개체 ({})를 생성 한 다음 즉시 res[x]이 가리키는 개체로 덮어 쓸 때 의미가 없습니다.

이 시도 : [. 코드 형식]

res.forEach(function (item) { 
    item['more info'] = { weight: weight, height: height }; 
}); 

console.log(res); 
+0

답변 해 주셔서 감사합니다. 그게 문제가 아니에요, 난 그냥 질문에 – Liatz

+0

오, 업데이트를 참조하십시오 그것을 쓰는 걸 잊었. –

+0

다시 한 번 감사드립니다. 여전히 '더 많은 정보'가 무시되고 있습니다! 심지어 시도 : item.save() – Liatz

관련 문제