Tôi không hoàn toàn hiểu rõ ý bạn khi "trả về trường", nhưng bạn có thể sử dụng lean()
truy vấn để bạn có thể tự do sửa đổi kết quả đầu ra, sau đó điền cả hai trường và xử lý sau kết quả để chỉ giữ lại trường bạn muốn:
.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;
}
});