2016-10-14 18 views
0

Ich versuche ein Schema mit den Feldern startTime und endTime vom Typ Date und Number zu erstellen. Was ich machen möchte ist, dass die startTime die aktuelle Uhrzeit ist, an der ich gerade arbeite und dann die endTime 1 Stunde später als die Startzeit ist. Hier ist der Code, den ich jetzt habe, aber ich bin nicht in der Lage, die Lösung herauszufinden. Die endTime wird nicht in der Datenbank gespeichert.nodeJS Daten & Mongoose sparen in mongoDB

d.h

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(); 
} 

Antwort

0

Verwenden nächsten. Nach dem Einstellen von endTime rufen next();

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

Hallo, tut mir leid, ich benutze next() im eigentlichen Code. Vergaß einfach, hier hochzuladen. – user3513466

+0

Sie verwenden diese Update-Abfrage nicht, oder? Verwenden Sie denselben Code, den ich in meiner Antwort angegeben habe. Es funktioniert nur, wenn Sie einen Datensatz erstellen. – Sachin

+0

Im aktuellen Fall müssen Sie keine Update-Abfrage innerhalb der 'Speichern' Pre-Hook – Sachin

Verwandte Themen