मैं पूरी तरह से स्पष्ट नहीं हूं कि "फ़ील्ड वापस करने" से आपका क्या मतलब है, लेकिन आप lean()
का उपयोग कर सकते हैं क्वेरी ताकि आप आउटपुट को स्वतंत्र रूप से संशोधित कर सकें, फिर दोनों फ़ील्ड को पॉप्युलेट कर सकें और परिणाम को पोस्ट-प्रोसेस कर सकें ताकि केवल वही फ़ील्ड रह सके जो आप चाहते हैं:
.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;
}
});