2013-08-16 3 views
1

에 요소를 삽입하는 방법을, 나는 이런 식으로 뭔가가 : 당신이 볼 수 있듯이몽구스는 기존 개체 (MongoDB를하고 Node.js를) 내 모델에서

subjects: { 
    Mathematics: { 
     questionsanswered: [ 
     "x+2=3, solve for x please", 
     "How do you write an expression that represents all quadrantal angles?" 
     ], 
     questionsasked: [ 
     "how to convert sin to cos?", 
     "factor the trinomial: 3x^2+7x+2" 
     ] 
    } 
} 

, 하위 요소의 많은 거기를하고 나는 Mongoose와 Node.js로 완전히 초보 다. questionsanswered 배열 필드에 다른 질문 (문자열)을 추가하려고한다. 나는 누군가가 questionsanswered 배열에 다른 요소를 삽입하는 방법을 알고 않는 '수정 $ pushAll 만 배열에 허용'문서에 고개를

userModel.update({username: username},{$pushAll: { subjects:{Mathematics:{questionsasked:['what is the definition of calculus']}}}},{upsert:true},function(err){ 
       if(err){ 
         console.debug(err); 
       }else{ 
         console.debug("Successfully added"); 
       } 
     }); 

을 시도했지만 말한다? 미리 감사드립니다.

+0

시도해보십시오'$ pushAll : { "subjects.Mathematics.questionsasked": "미적분의 정의는 무엇입니까?"' – randunel

+0

여전히 같은 것을 말합니다 : S – user2567834

+0

Nvm, { "subjects.Mathematics.questionsasked": [ "미적분의 정의는 무엇입니까"]} 그냥 '[]'을 (를) 추가해야했습니다. 감사합니다. – user2567834

답변

0

$pushAll은 더 이상 사용되지 않습니다.

userModel.update({ username }, { $push: { 
    'subjects.Mathematics.questionsasked': { $each: ['value1', 'value2'] } 
}}); 
:

userModel.update({ username }, { $addToSet: { 
    'subjects.Mathematics.questionsasked': 'unique value' 
}}); 

여러 요소 $each를 사용하여 추가하려면 현재 사용되지 addToSet이 경우

userModel.update({ username }, { $push: { 
    'subjects.Mathematics.questionsasked': 'value' 
}}); 

소자를 추가하려면, 단지 $push를 사용

기존 배열 한 요소를 추가