Скажем, я студенческая модель, как это:
const Schema = mongoose.Schema;
const StudentSchema = new Schema({
fullName: {
type: String,
required: true,
unique: true,
trim: true,
maxLength: 60,
minLength: 3,
},
studentID: {
type: String,
required: true,
unique: true,
trim: true,
maxLength: 60,
minLength: 3,
},
semester: {
type: Number,
min: 1,
max: 15,
}
});
module.exports = mongoose.model('StudentModel', StudentSchema);
Как я могу сказать мангусту автоматически увеличивать семестр на один каждые 6 месяцев в приложении Express?
@SebastianAmmon Думаю, я мог бы, не думал об этом. но я все еще не уверен, как это реализовать. Студент должен зарегистрироваться и ввести свой текущий семестр. Как изменится их семестр в БД через 6 месяцев? редактировать: я вижу, спасибо за ваш ответ. Я проведу свое исследование по этому поводу.
Да, а затем, когда вам будет интересно узнать, в каком семестре они сейчас находятся, вы подсчитаете, сколько месяцев прошло. Вы можете посмотреть что-то вроде npmjs.com/package/node-cron для запуска запланированных задач.
это пример, возможно, может помочь. добавить это свойство.
semester_next_time: {
type: Date,
}
StudentSchema.pre('find', function() {
// if semester_next_time is less than now do stuff and update next time semester
});
Это имеет массу смысла! Спасибо за ваш ответ!
@ArminE посмотрите на это для более подробной информации: mongoosejs.com/docs/middleware.html#defining
Вы не можете рассчитать правильный семестр, учитывая текущую дату и дату начала обучения студента? Единственный способ сделать это автоматически - создать фоновое задание, которое запускается каждые 6 месяцев и проверяет базу данных, а затем обновляет семестр.