我不知道为什么但是当我在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”字段不是我的文档创建日期?
答案 0 :(得分: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 install安装它们
答案 1 :(得分:0)
你可以定义:
created_at : {type: Date, index : true, default: Date.now}
每次创建文档时,都会将created_at属性设置为当前日期。