Това, което се случва, е, че нито една от стойностите за валидиране, междинен софтуер или стойности по подразбиране на Mongoose не се използват при извикване на който и да е от семейството методи за „актуализация“, като findByIdAndUpdate
. Те се извикват само от извиквания на save
или create
.
Причината за това е, че извикванията за „актуализация“ ефективно преминават към собствения драйвер, като Mongoose осигурява само преобразуване на типа на полетата въз основа на дефиницията на схемата.
Актуализация на Mongoose 4.0
Mongoose вече поддържа настройка по подразбиране, когато се създава нов документ по време на update
, findOneAndUpdate
или findByIdAndUpdate
upsert. Задайте setDefaultsOnInsert
опция за true
за да активирате това. Това използва $setOnInsert
оператор за създаване на настройките по подразбиране при вмъкване.
var queryOptions = {
upsert: true,
setDefaultsOnInsert: true
};
Company.findByIdAndUpdate(id, company, queryOptions).exec( ...