Mongodb $ push en matriz anidada

Quiero agregar nuevos datos mi matriz anidada

Mi documento es:

{ "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" } ] } ] } 

Quiero agregar música en esta sección de la lista de reproducción:

 { "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" } ] } ] } 

Esto es lo que intenté:

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

Probablemente algo como esto donde ID es tu ObjectId. Los primeros {} son necesarios para identificar su documento. No es necesario utilizar un ObjectId siempre que tenga otro identificador único en su colección.

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