Mam dwa schematy i chcę, aby ze sobą współpracowały. Na przykład:Jak tworzyć współzależne schematy w Mongoose?
// 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);
Jednak pojawia się błąd, ponieważ każdy schemat zależy od drugiego. Czy istnieje sposób, aby to działało, używając Mongoose? Dołączam je w ten sposób:
// app.js
require('./models/calendar');
require('./models/day');
Nie sądzę, że będzie to działać w zależności od kolejności wymaganych plików, albo calendar.js lub day.js będzie widzieć tylko częściową wersję drugiej z powodu [zależności cyklicznej] (http: //nodejs.org/api/modules.html#modules_cycles). – JohnnyHK
Tak, przepraszam! Nie myślałem o tym ... – Donflopez