Mongoose数组字段默认日期为服务器启动时间问题解析
Mongoose数组子文档默认值异常问题根源
定义的Mongoose模型
const reportUsSchema = new mongoose.Schema({ texts: [ { text: { type: String, default: "" }, date_time: { type: Date, default: new Date() }, }, ], });
需求
每当向texts字段中新增text时,自动插入当前日期时间。
遇到的问题
新增text时,date_time始终为服务器上次重启的时间(如重启2天后,日期仍为2天前),不符合预期。
尝试过的方案
- 使用moment.js的多种写法:
date_time: { type: Date, default: moment() }date_time: { type: Date, default: moment().format() }date_time: { type: Date, default: moment().utc(true) }date_time: { type: Date, default: moment().utc(true).format() } - 使用原生
Date()(即当前代码中的写法)
以上方案均无效。
备注
手动传入当前日期时间的方式可正常工作,但无法理解当前错误行为,希望明确问题根源。
Mongoose版本:5.10.7
补充:知晓Schema相关知识,只想明确导致该行为的错误原因。
内容的提问来源于stack exchange,提问作者ARHAM RUMI
相关产品推荐
相关产品推荐

