Puoi usare il $ operatore posizionale per eseguire questa operazione:
db.soup.update(
{_id: ObjectId("50b429ba0e27b508d854483e"), 'array.id': '2'},
{$set: {'array.$.letter': 'c'}})
Il $ nell'oggetto update funge da segnaposto per il primo elemento di array in modo che corrisponda al selettore di query.