2014-12-08 5 views
0

을 나는 그룹APPEND는 다차원하는 하위 문서

{ "_id" : 10, 
    "groups" : [ 
     { 

       "members" : ["Mark"], 
       "name" : "My Friends" 
     }, 
     { 

       "name" : "Colleagues" 
     }, 
     { 

       "name" : "Buddies" 
     },..... 
],.. } 

저를 제안하십시오 각 하위 문서에 대해 "이메일"와 같은 신청을 새로 추가 할. 미리 감사드립니다.

나는 작동하지 않지만 작동하지 않습니다. db.users.update ({}, {$ push : { "그룹. $ 이메일 :"abc '}}, true, true);

+0

이 질문에는 각 하위 문서의'email' 필드에 대해 어떤 값을 설정해야하는지와 같은 더 많은 정보가 필요합니까? – BatScream

+0

db.users.update ({}, {$ push : { "groups. $. email": 'abc'}}, false, true); – user3807753

답변

0

이 작업을 수행하려면 $elemMatch 연산자를 사용해야합니다. 특히, 당신이 원하는 :

db.users.update({_id:10,groups:{$elemMatch:{name:"My Friends"}}},{$push: {"groups.$.email":"abc"}},false,true); 

중요한 부분은 $ elemMatch 일치 정확한 요소 배열 포인터를 설정합니다, 그래서 당신은 그 시점에서 밀어 수 있다는 것입니다.