आप $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
. में शामिल फ़ील्ड पर एक अद्वितीय अनुक्रमणिका भी बनानी चाहिए और फिर डुप्लिकेट त्रुटि की संभावना को संभालें। देखें यह पोस्ट
विवरण के लिए क्यों।