За добавяне на настройки по подразбиране към вашия документ, ако е създаден с findOneAndUpdate (не съществуваше преди заявката) и не предоставихте полето в актуализацията, трябва да използвате setDefaultsOnInsert
.
Когато upsert и setDefaultsOnInsert и двете са true , стойностите по подразбиране ще бъдат зададени, ако записът не бъде намерен и се създаде нов. Това пропуска работния процес на проверка дали записът съществува и ако не, тогава създаване на нов със „запазване“, само за да сте сигурни, че са зададени настройките по подразбиране .
Имах същия проблем (запис, създаден с findOneAndUpdate с upsert: true ) и стойността по подразбиране за поле не беше добавена към записа, въпреки че беше в схемата. Това се отнася само за добавяне на стойности по подразбиране при използване на findOneAndUpdate за създаване на документи, а не за пропускане на актуализацията на полето „създадено“.
напр.
User.findOneAndUpdate({email: user.email}, user, {upsert: true, setDefaultsOnInsert:true}, ...)