Du kan göra allt med en enda update anropa modellen istället för att hämta den först med findOne :
User.update(
{'addresses._id': address_id},
{$set: {'addresses.$.street': 'Blah'}},
function(err, count) { ... });
Detta använder positionella $ operatör
i $set för att rikta in bara på addresses element som matchades i frågan.