У меня есть модель с атрибутом даты, я получаю его значение из запроса на публикацию. У меня есть как минимум две проблемы:
- Mongoose принимает эти данные как дату:
19124-012-030
- Когда я отправляю только год, Mongoose заполняет месяц и день и изменяет значение года.
Я еще ничего не пробовал, в моей схеме нет подтверждения, я полагаюсь только на тип proprety (type: Date
)
Схема
const mySchema = mongoose.Schema({
...
date: {
type: Date
},
});
Форма
<input id="dat" type="text" name="date" placeholder="date (yyyy-mm-dd)">
Обработчик маршрута :
app.post("/api/exercise/add", function(req, res, next) {
User
.findById(req.body.userId)
.exec()
.then(function(user) {
return Promise.all([user, new Exercise({
description: req.body.description,
duration: req.body.duration,
date: req.body.date, //BUG: must add validations
user: user
}).save()]);
})
.then(function([user, exercise]) {
user.exercises.push(exercise);
return user.save();
})
.then(user => res.json({ status: 201, exercises: user.exercises }))
.catch(err => next(err))
});
(1) Ожидаемое значение 19124-012-030
должно вызвать ошибку, вместо этого объект сохраняется с: 19124-12-29T23:00:00.000+00:00
(2) Когда ввод только 11111
, объект сохраняется с: 11110-12-31T23:00:00.000+00:00
Обновление
Вопрос включен. Я не нашел ничего подобного. В документации MongoDB ничего не указано, чтобы помочь понять проблему.