猫鼬中的错误日期

Wrong Date in mongoose

本文关键字:错误 日期      更新时间:2023-09-26

我不知道为什么,但当我在mongoose中创建新文档时,日期并不是实际日期。

这是我的模式:

var WhispSchema = new mongoose.Schema({
    text : String,
    created_at : {type : Date, index : true},
    pos : {latitude: Number, longitude: Number},
    created_by : {type : Schema.Types.ObjectId, ref : "UserSchema"},
    upvote : {type : Number, default : 0},
    downvote : {type : Number, default : 0},
    comment : [CommentSchema]
});
WhispSchema.pre("save", function (next){
    var currentDate = new Date();
    if(!this.created_at)
    {
        this.created_at = currentDate;
    }
    next();
});

为什么"created_at"字段不是我的文档的创建日期?

您需要将您的模式定义为以下

 var WhispSchema = new mongoose.Schema({
text : String,
created_at : {type : Date, index : true,default:Date.now()},
pos : {latitude: Number, longitude: Number},
created_by : {type : Schema.Types.ObjectId, ref : "UserSchema"},
upvote : {type : Number, default : 0},
downvote : {type : Number, default : 0},
comment : [CommentSchema]
 });

如果你想使用插件来添加创建的时间,你可以按照使用它

 var WhispSchema = require('mongoose-timestamp');
 WhispSchema.plugin(timestamps);

//使用npm安装来安装它们

您可以定义:

created_at : {type: Date, index : true, default: Date.now}

每次创建文档时,都会将created_at属性设置为当前日期。