Mongodb $ push in nested

Eu quero adicionar novos dados minha matriz aninhada

Meu documento é:

{ "username": "erkin", "email": "erkin-07@hotmail.com", "password": "b", "playlists": [ { "_id": 58, "name": "asdsa", "date": "09-01-15", "musics": [ { "name": "INNA - Cola Song (feat. J Balvin)", "duration": "3.00" }, { "name": "blabla", "duration": "3.00" } ] } ] } 

Quero adicionar música nesta seção da playlist:

 { "username": "erkin", "email": "erkin-07@hotmail.com", "password": "b", "playlists": [ { "_id": 58, "name": "asdsa", "date": "09-01-15", "musics": [ { "name": "INNA - Cola Song (feat. J Balvin)", "duration": "3.00" }, { "name": "blabla", "duration": "3.00" }, { "name": "new", "duration": "3.00" } ] } ] } 

Aqui está o que eu tentei:

 $users->update( array( '_id' => new MongoId (Session::get('id')), 'playlists._id' => $playlistId ), array( '$push' => array('playlists.musics' => array( 'name' => 'newrecord', 'duration' => '3.00' )) ) ); 

Provavelmente algo assim, onde o ID é o seu ObjectId. Os primeiros {} são necessários para identificar seu documento. Não é necessário usar um ObjectId, desde que você tenha outro identificador exclusivo em sua coleção.

 db.collection.update( { "_id": ID, "playlists._id": "58"}, { "$push": {"playlists.$.musics": { "name": "test name", "duration": "4.00" } } } )