Voor het toevoegen van standaardinstellingen aan uw document als het is gemaakt met findOneAndUpdate
(het bestond niet vóór de zoekopdracht) en je hebt het veld in de update niet opgegeven dat je moet gebruiken setDefaultsOnInsert
.
Wanneer upsert
en setDefaultsOnInsert
zijn beide true
, worden de standaardinstellingen ingesteld als het record niet wordt gevonden en een nieuwe wordt gemaakt. Dit slaat de workflow over van het moeten controleren of het record bestaat en zo niet, dan een nieuwe maken met 'opslaan' om er zeker van te zijn dat de standaardinstellingen zijn ingesteld .
Ik heb hetzelfde probleem gehad (record gemaakt met findOneAndUpdate
met upsert: true
) en de standaardwaarde voor een veld is niet toegevoegd aan de record, ook al stond het in het schema. Dit heeft alleen betrekking op het toevoegen van standaardwaarden bij gebruik van findOneAndUpdate
om documenten te maken, niet om de update van het veld 'gemaakt' over te slaan.
bijv.
User.findOneAndUpdate({email: user.email}, user, {upsert: true, setDefaultsOnInsert:true}, ...)