Vad som händer är att ingen av Mongooses validerings-, middleware- eller standardvärden används när man anropar någon av metoderna "update", som findByIdAndUpdate
. De anropas endast av anrop till save
eller create
.
Anledningen till detta är att "uppdaterings"-anropen effektivt överförs till den inbyggda drivrutinen, med Mongoose som endast tillhandahåller typcasting av fälten baserat på schemadefinitionen.
Mongoose 4.0-uppdatering
Mongoose stöder nu inställning av standardinställningar när ett nytt dokument skapas under en update
, findOneAndUpdate
, eller findByIdAndUpdate
uppröra. Ställ in setDefaultsOnInsert
alternativet till true
för att aktivera detta. Detta använder $setOnInsert
operatör för att skapa standardinställningarna på infogning.
var queryOptions = {
upsert: true,
setDefaultsOnInsert: true
};
Company.findByIdAndUpdate(id, company, queryOptions).exec( ...