Mongoose upsert erstellt keine Standardschemaeigenschaft

Beispieldokument Schema:

var CompanySchema = Schema({
    created: { type: Date, default: Date.now },
    modified: { type: Date, default: Date.now },
    address: { type: String, required:true },
    name: { type: String, required:true }
});

Ich verwende einen allgemeinen Request-Handler zum Bearbeiten und Erstellen von "Company" -Dokumenten:

exports.upsert = function(req, res) {
    helper.sanitizeObject(req.body);
    var company = {
        name: req.body.name,
        address: req.body.address
    };
    var id = req.body.id || new mongoose.Types.ObjectId();
    var queryOptions = {
        upsert: true
    };
    Company.findByIdAndUpdate(id, company, queryOptions).exec(function(error, result) {
        if(!error) {
            helper.respondWithData(req, res, {
                data: result.toJSON()
            });
        } else {
            helper.respondWithError(req, res, helper.getORMError(error));
        }
    });
};

Aber mit dieser Methode wird beim Einfügen eines neuen Dokumentscreated, modified -Eigenschaften werden nicht mit den Standardwerten von @ gespeicheDate.now. Jetzt kann ich @ anrufCompany.create Abhängig vom Vorhandensein einer ID, aber ich frage mich, warum upsert keine Standardwerte verwendet, wenn eine Eigenschaft in einem neuen Dokument nicht vorhanden ist.

Ich benutze Mongoose Version ~ 3.8.10,

Antworten auf die Frage(2)

Ihre Antwort auf die Frage