Можете да използвате $setOnInsert
във вашия параметър за актуализиране, така че да се прилага само във вмъкнатия случай; като актуализацията става безоперационна в случай, че документът вече съществува:
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 }
)
Обърнете внимание, че трябва също да създадете уникален индекс върху полетата, включени във вашия filter
и след това да се справи с възможността за дублирана грешка. Вижте тази публикация
за подробности защо.