Можете да направите всичко това с една единствена update извикайте модела, вместо първо да го извлечете с findOne :
User.update(
{'addresses._id': address_id},
{$set: {'addresses.$.street': 'Blah'}},
function(err, count) { ... });
Това използва позиционния $ оператор
в $set за насочване само към addresses елемент, който е съвпаднал в заявката.