Til tilføjelse af standardindstillinger til dit dokument, hvis det blev oprettet med findOneAndUpdate
(det eksisterede ikke før forespørgslen), og du angav ikke feltet i opdateringen, du skal bruge setDefaultsOnInsert
.
Når upsert
og setDefaultsOnInsert
er begge true
, indstilles standardindstillingerne, hvis posten ikke findes, og en ny oprettes. Dette springer arbejdsgangen over, hvor man skal kontrollere, om posten eksisterer, og hvis ikke, så oprettes en ny med "gem" bare for at sikre, at standardindstillingerne er angivet .
Jeg har haft det samme problem (registrering oprettet med findOneAndUpdate
med upsert: true
) og standardværdien for et felt blev ikke tilføjet til posten, selvom den var i skemaet. Dette er kun med hensyn til tilføjelse af standardindstillinger ved brug af findOneAndUpdate
at oprette dokumenter, ikke for at springe opdateringen af feltet 'oprettet' over.
f.eks.
User.findOneAndUpdate({email: user.email}, user, {upsert: true, setDefaultsOnInsert:true}, ...)