我有一个Mongoose Schema,我通过调用一个函数为一个字段分配一个默认值。
我的模式
function fun(){
let curr_time = moment().format();
return curr_time;
};
let flagged_trans_schema = new Schema({
time: {type: Date, default: fun},
});我在这里遇到了一个问题,当我写default: fun()时,时间字段不会更新时间,但当我写default: fun时,时间字段的值每次都会更新。
有人能告诉我为什么会这样吗?
发布于 2019-01-02 05:20:03
使用default: fun()将缺省值设置为声明模式时调用fun函数的结果。只需一次,所有新创建的模型实例(或者,可能是数据库中未设置time字段的文档)的默认值都将是该值。
使用default: fun将默认设置为引用fun函数,而且Mongoose足够聪明,知道这意味着它应该在每次创建新的模型实例时调用该函数。
https://stackoverflow.com/questions/53998995
复制相似问题