Jeg er ikke helt klar over, hvad du mener med "returnere et felt", men du kan bruge en lean()
forespørg, så du frit kan ændre outputtet, udfyld derefter begge felter og efterbehandle resultatet for kun at beholde det felt, du ønsker:
.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;
}
});