假设我有一个名为LeagueSchema的模式,它需要包含有关联赛事的一些常规信息(例如名称、创建时间等),以及一些更复杂的对象(例如会员身份)。由于这些会员身份在联赛之外不需要使用,因此我认为它们不必成为自己的集合。然而,出于可维护性的考虑,最好将这些模式存在它们自己的单独文件中。
代码如下: league.js
很遗憾,这并不起作用。我得到了以下错误:
ReferenceError: MembershipSchema未定义
这显然是因为LeagueSchema依赖于MembershipSchema,但我不确定最佳的包含它的方法。我能否以某种方式将其定义为依赖项?或者我只需包含该文件?
此外,使用子文档是否是不良实践?有什么理由让所有这些对象都存在于自己的集合中更好吗?
代码如下: league.js
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
var LeagueSchema = new Schema({
created: {
type: Date,
default: Date.now
},
updated: {
type: Date,
default: Date.now
},
name: {
type: String,
default: '',
trim: true
},
memberships: [MembershipSchema]
});
membership.js
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
var MembershipSchema = new Schema({
startDate: {
type: Date,
default: Date.now
},
endDate: {
type: Date,
default: null
},
user: {
type: Schema.ObjectId,
ref: 'User'
}
});
很遗憾,这并不起作用。我得到了以下错误:
ReferenceError: MembershipSchema未定义
这显然是因为LeagueSchema依赖于MembershipSchema,但我不确定最佳的包含它的方法。我能否以某种方式将其定义为依赖项?或者我只需包含该文件?
此外,使用子文档是否是不良实践?有什么理由让所有这些对象都存在于自己的集合中更好吗?