首页 文章

在MongoDB文档中使用MomentJS作为默认日期

提问于
浏览
1

我正在尝试使用MomentJS来获取非本地化的UTC时间,并将其设置为Mongo中创建的新文档的默认值 .

var SubFavoriteSchema = new Schema({
    user : { type: String, ref: 'Account'},
    date : {type: Date, default: moment.utc()}
});

问题是,moment.utc()返回节点服务器启动的日期 . 因此,如果我在1月1日启动服务器,即使文档是在1月10日创建的,所有文档也会获得1月1日的UTC时间 .

知道为什么它不断获取服务器的开始时间而不是当前时间吗?

2 回答

  • 2

    问题是您在创建架构时调用了 moment.utc() 函数(一次),因此在创建新文档时会使用相同的结果值 .

    但是,您不需要使用 momentdefault: Date.now 将执行您想要的操作,因为该函数返回当前的UTC时间 . 请注意,您不要调用 now 函数,只需传递函数本身即可 . 这是关键的区别 .

  • 0

    您需要使用工厂功能 .

    var currDate(){
      return function(){
        return moment.utc();
      }
    }
    
    var SubFavoriteSchema = new Schema({
        user : { type: String, ref: 'Account'},
        date : {type: Date, default: currDate()}
    });
    

相关问题