【发布时间】:2012-08-19 11:37:03
【问题描述】:
我有两个 Schema,我希望它们相互交互。例如:
// 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');
【问题讨论】:
标签: node.js mongoose database-schema