如何修复 Mongoose 中的 moment js 错误?

How do I fix this moment js bug in Mongoose?

我在 Mongoose 中创建了一个 posts 模型,它记录了用户创建的所有帖子。

const mongoose = require('mongoose');
const { Schema } = mongoose;
const moment = require('moment')

const postSchema = new Schema({
// Other fields in DB

timeCreated:{
type:String,
default: moment().valueOf()
}

});

const Posts = mongoose.model('Posts', postSchema);
module.exports = Posts

我遇到问题的代码的确切部分是这里的代码:

timeCreated:{
type:String,
default: moment().valueOf()
}

我正在使用 timeCreated 对象在前端进行时间计算。因此,当用户创建帖子时,数据库将指示这些帖子是同时创建的,即使创建的帖子相隔几个小时。

查看数据库快照(电子邮件和用户名是假的):

如果仔细观察,timeCreated 对象在所有 4 个帖子中都包含相同的字符串值,尽管这些帖子创建时间相隔数小时。 我的代码有问题吗,或者这是 Mongoose/Moment js 错误?

我在我的应用程序中遇到了类似的问题,我这样做是为了解决它。 我丢失了我的问题得到解决的 link。

timeCreated:{
     type:String,
     default: () => moment().valueOf()
}

PS:我认为你最好使用默认的 Javascript 日期而不是 moment,因为他们自己要求切换到不同的选择。 Read here.

像这样。

timeCreated:{
     type:String,
     default: () => new Date()
}