Vous devez utiliser la notation par points pour les tableaux.
Autrement dit, vous devez remplacer le $
avec l'index de base zéro de l'élément que vous essayez de mettre à jour.
Par exemple :
db.users.update ({_id: '123'}, { '$set': {"friends.0.emails.0.email" : '2222'} });
mettra à jour le premier e-mail du premier ami, et
db.users.update ({_id: '123'}, { '$set': {"friends.0.emails.1.email" : '2222'} })
mettra à jour le deuxième e-mail du premier ami.