To vše můžete provést pomocí jediné update zavolejte model namísto jeho načtení pomocí findOne :
User.update(
{'addresses._id': address_id},
{$set: {'addresses.$.street': 'Blah'}},
function(err, count) { ... });
Toto používá poziční $ operátor
v $set zacílit pouze na addresses prvek, který byl v dotazu nalezen.