Was los ist, ist, dass keine der Validierungs-, Middleware- oder Standardwerte von Mongoose verwendet werden, wenn Methoden aus der „Update“-Familie wie findByIdAndUpdate aufgerufen werden . Sie werden nur durch Aufrufe von save aufgerufen oder create .
Der Grund dafür ist, dass die „update“-Aufrufe effektiv Pass-Throughs an den nativen Treiber sind, wobei Mongoose nur die Typumwandlung der Felder basierend auf der Schemadefinition bereitstellt.
Mongoose 4.0-Update
Mongoose unterstützt jetzt das Festlegen von Standardeinstellungen, wenn während eines update ein neues Dokument erstellt wird , findOneAndUpdate , oder findByIdAndUpdate aufregen. Legen Sie setDefaultsOnInsert fest Option auf true um dies zu ermöglichen. Dies verwendet den $setOnInsert Operator zum Erstellen der Standardwerte beim Einfügen.
var queryOptions = {
upsert: true,
setDefaultsOnInsert: true
};
Company.findByIdAndUpdate(id, company, queryOptions).exec( ...