Javascript 学生,老师,猫鼬中的一个普通模型还是两个独立模型?
我需要为一名学生和一名教师创建一个帐户。我应该在mongoose中为学生和教师创建两个单独的模型吗?正确的方法是什么?学生和教师将共享一些属性,而有些属性将有所不同 目前,我只有一个学生和导师模型:Javascript 学生,老师,猫鼬中的一个普通模型还是两个独立模型?,javascript,node.js,mongodb,mongoose,mongoose-schema,Javascript,Node.js,Mongodb,Mongoose,Mongoose Schema,我需要为一名学生和一名教师创建一个帐户。我应该在mongoose中为学生和教师创建两个单独的模型吗?正确的方法是什么?学生和教师将共享一些属性,而有些属性将有所不同 目前,我只有一个学生和导师模型: const userSchema = new Schema({ name: { type: String, trim: true, required: true, maxLength: 32 }, surname
const userSchema = new Schema({
name: {
type: String,
trim: true,
required: true,
maxLength: 32
},
surname: {
type: String,
trim: true,
required: true,
maxLength: 32
},
email: {
type: String,
unique: true,
trim: true,
required: true,
lowercase: true
},
isActiveTutor: {
type: Boolean,
default: false
},
birthCountry: String,
initials: String,
hashed_password: {
type: String,
required: true
},
salt: String,
role: {
type: String
},
teachingLanguage:{
type: Object,
/*language: {
language,
level,
price
}*/
},
resetPasswordLink: {
data: String,
default: ''
}
}, {timestamps: true});
但是如果我想给老师一些学生不会有的东西呢?以防有人路过这里
const options = {discriminatorKey: 'kind'};
const userSchema = new mongoose.Schema({/* user schema: (Common) */}, options);
const User = mongoose.model('User', userSchema);
// Schema that inherits from User
const Teacher = User.discriminator('Teacher',
new mongoose.Schema({/* Schema specific to teacher */}, options));
const Student = User.discriminator('Student',
new mongoose.Schema({/* Schema specific to student */}, options));
const teacher = new Teacher({/* */});
const student = new Student({/* */});
原答覆(经修改):。
看看这些文件