2016-10-14 103 views
0

我试图创建一个名为startTime和endTime类型为Date和Number的字段的Schema。我想要做的是将startTime作为当前时间,我现在正在工作,然后endTime比开始时间晚1小时。这是我现在的代码,但我无法找出解决方案。 endTime没有被保存到数据库中。nodeJS日期和Mongoose保存到mongoDB

var Mongoose = require('mongoose'); 
var Schema = Mongoose.Schema; 
var testSchema = new Schema({ 
    startTime : {type: Date, default: Date.now, required: true}, 
    endTime : {type: Number, required: false}, 
}); 
testSchema.pre('save', function(next) { 
    var testDocument = this; 
    testDocument.endTime = Number(testDocument.startTime.valueOf() + 3600000); 
    next(); 
} 

回答

0

下次使用。设置endTime call next()后;

testSchema.pre('save', function(next) { 
     var testDocument = this; 
     testDocument.endTime = new Date(); 
     testDocument.endTime.setHours(testDocument.created_at.getHours() + 1) 
     next(); 
    }) 
+0

嗨,对不起,我在实际的代码中使用next()。忘了在这里上传。 – user3513466

+0

您没有使用该更新查询,对吗?使用与我在答案中发布的代码相同的代码。它只会在您创建记录时才起作用。 – Sachin

+0

在目前的情况下,你不需要使用更新查询里面的'保存'预钩 – Sachin