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( ...