2015-12-05 74 views
0

我不知道爲什麼,但當我在貓鼬創建一個新的文件日期不是實際的日期。錯誤的日期在貓鼬

這是我的架構:

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」字段是不是創造我的文檔中的日期?

回答

0

你可以只定義:

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

每一個文件被創建,這將在created_at屬性設置爲當前日期時間。

1

您需要定義您的架構如下

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安裝到安裝它們

+0

這是可以的日期,但不是在幾個小時。 – JohnyBro

+0

@JohnyBro爲什麼如此呢? – mayank

+0

當我創建文檔時,日期顯示爲遲了一個小時,像這樣(我現在剛剛創建它)「2015-12-07T10:11:38.617Z」 – JohnyBro