Använd $set
operatorn tillsammans med $
positionsoperator i din uppdatering för att ändra name
fält.
$
positionsoperatorn kommer att identifiera det korrekta elementet i arrayen som ska uppdateras utan att explicit specificera elementets position i arrayen, så din slutliga uppdateringssats ska se ut så här:
db.collection.update(
{ "friends.u.username": "michael" },
{ "$set": { "friends.$.u.name": "hello" } }
)