U kunt $setOnInsert
gebruiken
in uw update-parameter zodat deze alleen van toepassing is in het geval van invoegen; waarbij de update een no-op wordt in het geval dat het document al bestaat:
return await Foo.findOneAndUpdate(
filter, // find a document with that filter
{$setOnInsert: fooDoc}, // document to insert when nothing was found
{ upsert: true, new: true, runValidators: true }
)
Merk op dat u ook een unieke index moet maken over de velden die zijn opgenomen in uw filter
en behandel vervolgens de mogelijkheid van een dubbele fout. Zie dit bericht
voor de details waarom.