Het is mij niet helemaal duidelijk wat je bedoelt met "een veld retourneren", maar je kunt een lean()
gebruiken query, zodat u de uitvoer vrijelijk kunt wijzigen, vul vervolgens beide velden in en nabewerking van het resultaat om alleen het gewenste veld te behouden:
.lean().populate('user', 'email.address facebook.address')
.exec(function (err, subscription){
if (subscription.user.email.address) {
delete subscription.user.facebook;
} else {
delete subscription.user.email;
}
});