2012-01-28 4 views
5

यदि मेरे पास दो मॉडल हैं, तो has_many मोंगोस ओडीएम में रिश्ते के साथ। अर्थात। उपयोगकर्ता टीम के अंतर्गत आता है, और टीम में कई उपयोगकर्ता हैं:क्या मोंगोज़ ओडीएम आपको आसानी से एसोसिएशन के दोनों तरफ से बचाने की अनुमति देता है?

var User = new Schema({ 
    username : {type: String, required: true }, 
    email  : {type: String, required: true}, 
    team  : { type: Schema.ObjectId, ref: 'Team'}, 
    created_at : {type : Date, default : Date.now}, 
    updated_at : {type : Date, default : Date.now} 
}); 

var exports = module.exports = mongoose.model('User', User); 

और

var Team = new Schema({ 
    name  : {type: String, required: true}, 
    users  : [{ type: Schema.ObjectId, ref: 'User'}], 
    created_at : {type : Date, default : Date.now}, 
    updated_at : {type : Date, default : Date.now} 
}); 

var exports = module.exports = mongoose.model('Team', Team); 

... वहाँ किसी भी तरह से नेवला user.save({team: team, ...}) पर team.users संग्रह करने के लिए user जोड़ने के लिए बताने के लिए है? या क्या मुझे उपयोगकर्ता मॉडल में save() मिडलवेयर का उपयोग करना है?

कारण मैं पूछता हूं कि यह मोंगोस डॉक्स द्वारा कवर किए गए उपयोग-मामलों में से एक नहीं है और यह कार्यक्षमता रेल/मोंगोइड सम्मेलन में काफी मानक है।

उत्तर

0

अपने प्रश्न का उत्तर देने के लिए: आपको उस कार्यक्षमता को स्वयं लिखना होगा।

हालांकि, क्या आप schema design doc से गुजर चुके हैं? विशेष रूप से एम्बेडिंग बनाम एम्बेडिंग? यह दस्तावेज़ एम्बेडिंग के माध्यम से "has_many" रिश्ते को पूरा करने के लिए अक्सर अधिक आसान और अधिक कुशल होता है।

+0

हाँ मेरे पास है। मैंने पाया है कि एम्बेडेड समझ में आता है जब संस्थाएं माता-पिता के बिना मौजूद नहीं होती हैं। मुझे एम्बेडेड डेटा के प्रश्नों को स्पष्ट रूप से करने के लिए भी बहुत कठिन लगता है। – justinjmoses