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