Я хочу сохранить элемент date
в моей базе данных для журналов моего сайта:
var LogSchema = new mongoose.Schema({
date: Date,
... ...
})
Чтобы создать и сохранить журнал в фоновом режиме:
log.date = new Date()
console.log(log.date.getTime()) // it works well
log.save(...)
Когда я проверяю базу данных в монго, она показывает: "date": ISODate("2017-12-02T01:51:44.540Z")
.
Однако в интерфейсе, когда я хочу прочитать журнал, log.date.getTime()
выдает ошибку TypeError: log.date.getTime is not a function
. Кажется, что log.date
считается String
а не Date
.
Кто-нибудь знает, что здесь не так?
Вы смешиваете объект JavaScript Date с строкой даты ISO. Когда вы сохраняете базу данных, она становится строкой. Вам нужно преобразовать строку даты обратно в объект даты javascript, прежде чем вы сможете использовать метод getTime(). Пытаться:
var myDate = new Date(dateStringFromDatabase);
console.log(myDate.getTime());
var LogSchema = new mongoose.Schema({ date: Object })
, он все еще сохраняет строку даты ISO.