Aplique o
$set
operador junto com o $
operador posicional em sua atualização para alterar o name
campo. O
$
O operador posicional identificará o elemento correto na matriz a ser atualizado sem especificar explicitamente a posição do elemento na matriz, portanto, sua instrução de atualização final deve se parecer com:db.collection.update(
{ "friends.u.username": "michael" },
{ "$set": { "friends.$.u.name": "hello" } }
)