2015-02-06 2 views
2

저는 첫 번째로 파이썬과 몽고를 사용하고 있습니다. 문서에서 필자는 필요한 것을 찾을 수 없었습니다.

그래서 내 데이터 객체는이

{ 
"_id" : ObjectId("54d372597d74523bc6991b9b"), 
"id_user" : "2000001", 
"date_registrated" : "2015-01-21 12:11:28.185", 
"user" : "Bogdan", 
"gender" : "M", 
"email" : "[email protected]", 
"charachters" : [ 
    { 
     "quest_info" : "TUT_var,1421842359 STARTAREA,4 ", 
     "char_name" : "Testarion" 
    } 
] 
} 

처럼 보인다 그리고

party_user = {"party_name": "name", 
       "admin": 0} 

처럼, 기존 charachters에 뭔가 새로운 필드를 추가 할 그리고 마지막으로 나는이 싶지 :

{ 
"_id" : ObjectId("54d372597d74523bc6991b9b"), 
"id_user" : "2000001", 
"date_registrated" : "2015-01-21 12:11:28.185", 
"user" : "Bogdan", 
"gender" : "M", 
"email" : "[email protected]", 
"charachters" : [ 
    { 
     "quest_info" : "TUT_var,1421842359 STARTAREA,4 ", 
     "char_name" : "Testarion" 
     **"parties" : [{party 1},{party 2}]** 
    } 
] 
} 

문제는 그것을 만드는 쿼리를 만드는 방법입니까? 나는이 같은 뭔가 시도했다 그러나 그것은 비참하게 실패 :

db.collection('MyDB').update(
       {"char_name": "Testarion"}, 
       {"$push": { 
        "charachters": {"parties": party_user} 
       }}) 

는 아직도 몽고 새로운 해요 모든 일을 사로 잡았하지 않은하지만 당신은 내가 잘못 뭐하는 거지 나에게 보여 주실 래요? 그게 가능한가? 그 배열 요소에 대한 업데이트 쿼리에서

답변

3

사용 '$'

db.collection.update(
    {"charachters.char_name": "Testarion"}, 
    {"$push": {"charachters.$.parties": "party_user"}}) 
관련 문제