Det, der sker, er, at ingen af Mongooses validerings-, middleware- eller standardværdier bruges, når der kaldes nogen af "update"-familien af metoder, såsom findByIdAndUpdate
. De påkaldes kun af opkald til save
eller create
.
Årsagen til dette er, at "opdaterings"-kaldene reelt er pass-throughs til den oprindelige driver, hvor Mongoose kun leverer typecasting af felterne baseret på skemadefinitionen.
Mongoose 4.0-opdatering
Mongoose understøtter nu indstilling af standarder, når et nyt dokument oprettes under en update
, findOneAndUpdate
, eller findByIdAndUpdate
oprøre. Indstil setDefaultsOnInsert
mulighed for at true
for at aktivere dette. Dette bruger $setOnInsert
operatør for at oprette standardindstillingerne på indsættelse.
var queryOptions = {
upsert: true,
setDefaultsOnInsert: true
};
Company.findByIdAndUpdate(id, company, queryOptions).exec( ...