2014-09-27 1 views
0

질문이 있습니다. 내 데이터는 다음과 같이이다 :
MongoDB에서 복잡한 업데이트 방법

{ 
    "name" : "username", 
    "surname" : "surname", 
    "playlists": { 
    "name": "playlistName", 
    "date": "27-09-14", 
    "musics": [ 
     "music name 1", 
     "music name 2" 
    ] 
    }, 
    "playlists": { 
    "name": "playlistName2", 
    "date": "27-09-14", 
    "musics": [ 
     "music name 1", 
     "music name 2" 
    ] 
    } 

} 


내가이 데이터에 섹션을 한 번 더 "재생 목록"을 추가하고 싶습니다.
내 데이터는 다음과 같이해야합니다 :

{ 
    "name" : "username", 
    "surname" : "surname", 
    "playlists": { 
    "name": "playlistName", 
    "date": "27-09-14", 
    "musics": [ 
     "music name 1", 
     "music name 2" 
    ] 
    }, 
    "playlists": { 
    "name": "playlistName2", 
    "date": "27-09-14", 
    "musics": [ 
     "music name 1", 
     "music name 2" 
    ] 
    }, 
    "playlists" : { 
    "blabla" : "blabla" 
    } 

} 

업데이트 쿼리는 작동하지 않았다.
어떻게하면됩니까? 미리 감사드립니다.
제가

$ dbData = 배열 ​​("$ 세트 '=> 어레이 ('재생 '=> 어레이 ('blabla를 '=> 'blabla '))) 시도;
$ users-> update (array ('_ id'=> 새로운 MongoId ('541f0e2216c8272c058b4567')), $ dbData);

+0

몇 가지 코드를 보여주십시오. 어떻게 이러는거야? – Crasher

+0

데이터에있는 재생 목록에 다른 재생 목록을 추가 하시겠습니까? 또는 다른 배열을 추가하고 싶습니까? – Milad

+0

정확히 무엇이 필요할까요? – Milad

답변

0

또한 여러 개의 동일한 키를 사용할 수도 있지만 권장하지는 않습니다 (2개의 키가 있고 더 필요함).

하나의 합리적인 해결 방법은 배열로 playlists을 만들고 요소를 밀어 넣는 것입니다.

{ 
    "name" : "username", 
    "surname" : "surname", 
    "playlists": [...] 
} 

$dbData = array('$push' => array('playlists' => array ('blabla' => 'blabla'))); 
$users->update(array('_id' => new MongoId ('541f0e2216c8272c058b4567')), $dbData);