Javascript 学生,老师,猫鼬中的一个普通模型还是两个独立模型?

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

我需要为一名学生和一名教师创建一个帐户。我应该在mongoose中为学生和教师创建两个单独的模型吗?正确的方法是什么?学生和教师将共享一些属性,而有些属性将有所不同

目前,我只有一个学生和导师模型:

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({/*  */});
原答覆(经修改):。 看看这些文件