से .populate() के साथ कुछ फ़ील्ड लौटें। मैं अपनी क्वेरी चलाने के बाद MongoDB से JSON मान वापस कर रहा हूं। समस्या यह है कि मैं अपनी वापसी के साथ जुड़े सभी JSON को वापस नहीं करना चाहता, मैंने दस्तावेज़ों को खोजने की कोशिश की और इसे करने का उचित तरीका नहीं मिला। मैं सोच रहा था कि क्या यह संभव है, और यदि ऐसा है तो ऐसा करने का सही तरीका क्या है। उदाहरण: डीबीमोंगोस
{
user: "RMS",
OS: "GNU/HURD",
bearded: "yes",
philosophy: {
software: "FOSS",
cryptology: "Necessary"
},
email: {
responds: "Yes",
address: "[email protected]"
},
facebook: {}
}
{
user: "zuckerburg",
os: "OSX",
bearded: "no",
philosophy: {
software: "OSS",
cryptology: "Optional"
},
email: {},
facebook: {
responds: "Sometimes",
address: "https://www.facebook.com/zuck?fref=ts"
}
}
में एक क्षेत्र लौटने अगर यह एक उपयोगकर्ता के लिए मौजूद है की उचित तरीका क्या हो सकता है, लेकिन अगर यह एक और क्षेत्र वापस नहीं करता है। ऊपर दिए गए उदाहरण के लिए मैं आरएमएस के लिए [email][address]
फ़ील्ड और ज़करबर्ग के लिए [facebook][address]
फ़ील्ड वापस करना चाहता हूं। यह है कि मैंने यह पता लगाने की कोशिश की है कि कोई फ़ील्ड शून्य है, लेकिन ऐसा लगता है कि यह काम नहीं कर रहा है।
.populate('user' , `email.address`)
.exec(function (err, subscription){
var key;
var f;
for(key in subscription){
if(subscription[key].facebook != null ){
console.log("user has fb");
}
}
}
यह मेरे लिए काम कर रहे, किसी को भी जानता है कि अगर यह बदल गया है नहीं एक मोंगोस अपडेट के साथ? –