Du måste använda Dot Notation för arrayerna.
Det vill säga, du bör ersätta $
med det nollbaserade indexet för elementet du försöker uppdatera.
Till exempel:
db.users.update ({_id: '123'}, { '$set': {"friends.0.emails.0.email" : '2222'} });
kommer att uppdatera det första e-postmeddelandet för den första vännen, och
db.users.update ({_id: '123'}, { '$set': {"friends.0.emails.1.email" : '2222'} })
kommer att uppdatera det andra e-postmeddelandet för den första vännen.