मेरे पास दो स्कीमा हैं और मैं चाहता हूं कि वे एक-दूसरे से बातचीत करें। उदाहरण के लिए:मोंगोस में परस्पर निर्भर स्कीमा कैसे बनाएं?
// calendar.js
var mongoose = require('mongoose');
var Scema = mongoose.Schema;
var Day = mongoose.model('Day');
var CalendarSchema = new Schema({
name: { type: String, required: true },
startYear: { type: Number, required: true }
});
CalendarSchema.methods.getDays = function(cb){
Day.find({ cal: this._id }, cb);
}
module.exports = mongoose.model('Calendar', CalendarSchema);
// day.js
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var ObjectId = Schema.ObjectId;
var Calendar = mongoose.model('Calendar');
var DaySchema = new Schema({
cal: { type: ObjectId, required: true },
date: { type: Number, required: true },
text: { type: String, default: 'hello' }
});
DaySchema.methods.getCal = function(cb){
Calendar.findById(this.cal, cb);
}
module.exports = mongoose.model('Day', DaySchema);
हालांकि, मुझे एक त्रुटि मिलती है क्योंकि प्रत्येक स्कीमा दूसरे पर निर्भर करती है। क्या मोंगोस का उपयोग करके यह काम करने का कोई तरीका है? मैं उन्हें इस तरह शामिल करता हूं:
// app.js
require('./models/calendar');
require('./models/day');
मुझे नहीं लगता कि यह आपकी आवश्यक फ़ाइलों के क्रम के आधार पर काम करेगा, या तो calendar.js या day.js केवल [परिपत्र निर्भरता] के कारण दूसरे का आंशिक संस्करण देखेंगे (http: //nodejs.org/api/modules.html#modules_cycles)। – JohnnyHK
हाँ, क्षमा करें! मैंने इसके बारे में सोचा नहीं है ... – Donflopez