Node.js 始终为MongoDb中的不同新实体获取相同的时间戳-createdOn

Node.js 始终为MongoDb中的不同新实体获取相同的时间戳-createdOn,node.js,mongodb,express,date,Node.js,Mongodb,Express,Date,下面是我的mongoose模式,其中createdOn的类型为date,默认为date.now() const SurveyResponseModel=mongoose.Schema({ surveyId:{type:String,必需:true}, surveyData:[调查数据], 结果:[respResult], patientId:{type:String}, 调查方式:{type:String}, createdOn:{type:Date,默认值:Date.now()}, });

下面是我的mongoose模式,其中createdOn的类型为date,默认为date.now()

const SurveyResponseModel=mongoose.Schema({
surveyId:{type:String,必需:true},
surveyData:[调查数据],
结果:[respResult],
patientId:{type:String},
调查方式:{type:String},
createdOn:{type:Date,默认值:Date.now()},
});
下面是我如何向数据库添加新条目的

const newSurvey=newsurveyresponsemodel({surveyId,surveyData,surveyBy,patientId,result})
让savedSurvey=等待newSurvey.save();
直到这里一切都很好。当在模式中创建新条目时,问题就开始了。对于每个新条目,我都会得到相同的createdOn时间戳。
我做错了什么?它是
createdOn:{type:Date,default:Date.now()}
一个问题还是其他问题。MongoDB或我的node express服务器有问题吗?非常感谢您提供一些帮助和反馈。

当执行此代码时(在服务器启动时),
Date.now()
将被执行,结果将保存在对象文本中,因此在服务器的生命周期内将使用单个时间戳

尝试传递函数,而不是它在单个时间点返回的值。Mongoose将在运行时调用它

createdOn: { type: Date, default: Date.now }

当执行此代码时(在服务器启动时),将执行
Date.now()
,结果保存在对象文本中,因此该时间戳将在服务器的生命周期内使用

尝试传递函数,而不是它在单个时间点返回的值。Mongoose将在运行时调用它

createdOn: { type: Date, default: Date.now }

不知道为什么不起作用,但为什么不试试这个::谢谢。我用andys的答案解决了这个问题。不知道为什么它不起作用,但为什么不试试这个::谢谢。我用andys的答案解决了这个问题。谢谢@andy,它成功了。我从来不知道这个日期。现在()会有所不同。谢谢@andy它成功了。我从来不知道这个日期。现在()会有所不同。