Vous pouvez utiliser le $ opérateur positionnel pour faire ceci :
db.soup.update(
{_id: ObjectId("50b429ba0e27b508d854483e"), 'array.id': '2'},
{$set: {'array.$.letter': 'c'}})
Le $ dans l'objet de mise à jour agit comme un espace réservé pour le premier élément de array pour correspondre au sélecteur de requête.