MongoDB में रिकॉर्ड तभी इन्सर्ट करें जब वह मौजूद न हो, इसके लिए update() के साथ upsert: true विकल्प का उपयोग करें।
उदाहरण से समझें
एक कलेक्शन बनाकर डॉक्यूमेंट इन्सर्ट करते हैं:
> db.insertIfNotExistsDemo.insertOne({"StudentName": "Mike", "StudentAge": 21});
> db.insertIfNotExistsDemo.insertOne({"StudentName": "Sam", "StudentAge": 22});
सभी डॉक्यूमेंट देखने के लिए:
> db.insertIfNotExistsDemo.find().pretty();
आउटपुट:
अब
StudentName: "David"वाले रिकॉर्ड को इन्सर्ट करें यदि मौजूद नहीं है:> var key = {"StudentName": "David"}; > var value = {"StudentName": "David", "StudentAge": 26}; > db.insertIfNotExistsDemo.update(key, value, {upsert: true});आउटपुट:
nMatched: 0औरnUpserted: 1दर्शाता है कि नया डॉक्यूमेंट इन्सर्ट हुआ।फिर से सभी डॉक्यूमेंट चेक करें:
> db.insertIfNotExistsDemo.find().pretty();आउटपुट:
यदि रिकॉर्ड पहले से मौजूद होता, तो अपडेट होता।
upsert: trueइसे "इन्सर्ट इफ नॉट एक्जिस्ट" बनाता है।आधुनिक सिंटैक्स: MongoDB 3.2+ में
updateOne()याupdateMany()के साथ{upsert: true}विकल्प का उपयोग करें।