Wat er aan de hand is, is dat geen van de validatie-, middleware- of standaardwaarden van Mongoose wordt gebruikt bij het aanroepen van een van de "update" -familie van methoden, zoals findByIdAndUpdate . Ze worden alleen aangeroepen door oproepen om save of create .
De reden hiervoor is dat de "update"-aanroepen in feite pass-throughs zijn naar het native stuurprogramma, waarbij Mongoose alleen typecasting van de velden levert op basis van de schemadefinitie.
Mongoose 4.0-update
Mongoose ondersteunt nu het instellen van standaardwaarden wanneer een nieuw document wordt gemaakt tijdens een update , findOneAndUpdate , of findByIdAndUpdate opperen. Stel de setDefaultsOnInsert . in optie tot true om dit mogelijk te maken. Dit gebruikt de $setOnInsert operator om de standaardinstellingen bij invoegen te maken.
var queryOptions = {
upsert: true,
setDefaultsOnInsert: true
};
Company.findByIdAndUpdate(id, company, queryOptions).exec( ...