Applica il $set operatore insieme al $ posizionale nel tuo aggiornamento per cambiare il name campo.
Il $ l'operatore posizionale identificherà l'elemento corretto nell'array da aggiornare senza specificare esplicitamente la posizione dell'elemento nell'array, quindi l'istruzione di aggiornamento finale dovrebbe essere simile a:
db.collection.update(
{ "friends.u.username": "michael" },
{ "$set": { "friends.$.u.name": "hello" } }
)