Всегда получаю одну и ту же временную метку - созданную для разных новых предприятий в MongoDb - PullRequest
0 голосов
/ 17 января 2020

Ниже приведен мой мон goose Схема, из которой созданOn имеет тип date и по умолчанию Date.now ().

const SurveyResponseModel = mongoose.Schema({
  surveyId: { type: String, required: true },
  surveyData: [surveyData],
  result : [respResult],
  patientId: { type: String },
  surveyBy: {type: String},
  createdOn: { type: Date, default: Date.now() },
});

Вот как я добавляю новые записи в БД.

const newSurvey = new surveyResponseModel({ surveyId, surveyData, surveyBy, patientId, result })
    let savedSurvey = await newSurvey.save();

До тех пор, пока здесь все отлично работает. Проблема начинается, когда новые записи вносятся в схему. Я получаю одинаковую метку времени созданного для каждой новой записи. Что я делаю неправильно? Это createdOn: { type: Date, default: Date.now() } проблема или что-то еще. Это проблема с MongoDB или моим узлом express сервером? Некоторая помощь и отзывы были бы очень благодарны.

1 Ответ

2 голосов
/ 17 января 2020

Когда этот код выполняется (при запуске сервера), Date.now() выполняется и результат сохраняется в литерале объекта, следовательно, эта единственная временная метка будет использоваться на протяжении всего срока службы сервера.

Попробуйте передать функцию вместо значения, которое она возвращает в определенный момент времени. Пн goose будет вызывать его во время выполнения.

createdOn: { type: Date, default: Date.now }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...