Aplicar el $set
operador junto con el $
operador posicional en su actualización para cambiar el name
campo.
El $
El operador posicional identificará el elemento correcto en la matriz para actualizar sin especificar explícitamente la posición del elemento en la matriz, por lo que su declaración de actualización final debería verse así:
db.collection.update(
{ "friends.u.username": "michael" },
{ "$set": { "friends.$.u.name": "hello" } }
)