Tôi có hai Schemas và tôi muốn chúng tương tác với nhau. Ví dụ:Làm thế nào để tạo các lược đồ phụ thuộc lẫn nhau trong 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);
Tuy nhiên, tôi gặp lỗi vì mỗi lược đồ phụ thuộc vào một lược đồ khác. Có cách nào để làm việc này bằng Mongoose không? Tôi bao gồm chúng như sau:
// app.js
require('./models/calendar');
require('./models/day');
Tôi không nghĩ rằng nó sẽ hoạt động tùy thuộc vào thứ tự các tệp yêu cầu của bạn, calendar.js hoặc day.js sẽ chỉ thấy phiên bản một phần của phiên bản khác vì [phụ thuộc vòng tròn] (http: //nodejs.org/api/modules.html#modules_cycles). – JohnnyHK
Có, xin lỗi! Tôi đã không nghĩ về điều đó ... – Donflopez