Nie do końca rozumiem, co rozumiesz przez „zwracanie pola”, ale możesz użyć lean()
zapytanie, abyś mógł swobodnie modyfikować dane wyjściowe, a następnie wypełnij oba pola i przetwórz wynik, aby zachować tylko żądane pole:
.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;
}
});