2015-06-22 8 views
5

के साथ सत्यापन के लिए अभिभावक स्कीमा संपत्ति प्राप्त करें मान लें कि मेरे पास एक और स्कीमा (आइटम) में घोंसला वाला स्कीमा (आमंत्रण) है और आमंत्रण ऑब्जेक्ट को सहेजने का प्रयास करते समय, मैं यह जांचना चाहता हूं कि मूल संपत्ति 'सक्षम' है या नहीं। आइटम स्कीमा से आमंत्रण ऑब्जेक्ट में आमंत्रण ऑब्जेक्ट को सहेजने की अनुमति देने से पहले आइटम स्कीमा को सत्य या गलत पर सेट किया गया है। जाहिर है, यह। सक्षम काम नहीं करता है क्योंकि यह इसे निमंत्रण से दूर करने की कोशिश कर रहा है, जो मौजूद नहीं है। माता-पिता स्कीमा को सत्यापित करने के लिए 'सक्षम' संपत्ति कैसे प्राप्त होगी?मोंगोस और मोंगोडीबी

कोई विचार? किसी भी मदद के लिए धन्यवाद!

var validateType = function(v) { 
    if (v === 'whateverCheck') { 
     return this.enabled || false; <== this doesn't work 
    } else { 
     return true; 
    } 
}; 

var invitationSchema = new Schema({ 
    name: { type: String }, 
    type: { 
     type: String, 
     validate: [validateType, 'error message.'] 
    } 
}); 

var itemSchema = new Schema({ 
    title: { type: String }, 
    description: { type: String }, 
    enabled: {type: Boolean}, <== trying to access this here 
    invitations: { type: [ invitationSchema ] }, 
}); 

var ItemModel = mongoose.model('Item', itemSchema, 'items'); 
var InvitationModel = mongoose.model('Invitation', invitationSchema); 

उत्तर

1

एक एम्बेडेड दस्तावेज़ के माता-पिता instance.parent(); को फोन करके एक एम्बेडेड दस्तावेज़ मॉडल उदाहरण से सुलभ है। तो आप इसे किसी भी मोंगोस मिडलवेयर से वैध या हुक की तरह कर सकते हैं।

अपने मामले में आप कर सकते हैं:

var validateType = function(v) { 
    if (v === 'whateverCheck') { 
     return this.parent().enabled || false; // <== this does work 
    } else { 
     return true; 
    } 
}; 
संबंधित मुद्दे