You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 17:17:02