так вот моя проблема. Я пишу приложение, приложение курса, и я ударил стену. Моя проблема в том, что всякий раз, когда пользователь добавляет новый курс в базу данных, он автоматически устанавливает два поля с именами startingDate
и nextClasses
. В начале nextClasses
поле равно startingDate
, но я бы хотел периодически менять эту дату каждую неделю. Так, например, занятия начинаются 11 января, а ночью между воскресеньем и понедельником дата обновляется до 18 числа в каждом документе. Моя проблема в том, что я понятия не имею, как я могу написать свой код updateMany
, чтобы изменить эти значения. Я знаю, что мне нужно использовать какую-то библиотеку для обновления этой даты, например nodejs cron
, но не могу понять, как должна выглядеть updateMany
.
Вот мой courseModel
const mongoose = require('mongoose');
const courseSchema = new mongoose.Schema({
name: {
type: String,
trim: true,
required: true
},
owner: {
type: mongoose.Schema.Types.Object,
// required: true,
owner: {
name: String,
email: String
}
},
startingDate: {
type: Date
},
nextClasses: {
type: Date
},
students: [
{
type: mongoose.Schema.Types.Object,
required: true,
trim: true
}
]
});
const Course = mongoose.model('Course',courseSchema);
module.exports = Course;
И мой маршрут для обновления данных, который не работает.
router.patch('/course/updateTime',async(req,res) => {
try {
const data = await Course.updateMany({"nextClasses": whatShouldIPutHere},
{ $set: {"nextClasses": new Date() }});
} catch(e) {
console.log(e);
}
});
Я понимаю, как работает updateMany
и что параметры, которые я должен передать, но я не знаю, как передать значение из другого поля, чтобы эта работа работала.