Ho due schemi e voglio che interagiscano l'uno con l'altro. Ad esempio:Come creare schemi interdipendenti in 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);
Tuttavia, viene visualizzato un errore perché ogni schema dipende dall'altro. C'è un modo per farlo funzionare usando Mongoose? Li includo in questo modo:
// app.js
require('./models/calendar');
require('./models/day');
Non credo che funzionerà in base all'ordine dei file richiesti, sia calendar.js che day.js vedranno solo una versione parziale dell'altro a causa della [dipendenza circolare] (http: //nodejs.org/api/modules.html#modules_cycles). – JohnnyHK
Sì, mi dispiace! Non ci ho pensato ... – Donflopez