MongoDB में updateOne() का उपयोग करके सिंगल दस्तावेज़ अपडेट करना
updateOne() विधि क्वेरी फ़िल्टर से मेल खाने वाले **पहले** दस्तावेज़ को अपडेट करती है, भले ही कई दस्तावेज़ फ़िल्टर से मेल खाते हों।
सैंपल डेटा बनाना (डुप्लिकेट StudentId के साथ)
> db.updateOneDemo.insertOne({"StudentId":1,"StudentFirstName":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e06ed3725ddae1f53b621e8") }
> db.updateOneDemo.insertOne({"StudentId":2,"StudentFirstName":"David"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e06ed3825ddae1f53b621e9") }
> db.updateOneDemo.insertOne({"StudentId":1,"StudentFirstName":"Mike"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e06ed3825ddae1f53b621ea") }
सभी दस्तावेज़ देखना
> db.updateOneDemo.find();
आउटपुट:
पहले मिले दस्तावेज़ को अपडेट करना (खाली फ़िल्टर)
> db.updateOneDemo.updateOne({}, {$set: {"StudentFirstName": "Robert"}}); { "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 }अपडेटेड दस्तावेज़ देखना
> db.updateOneDemo.find();आउटपुट (पहला दस्तावेज़ अपडेट हुआ):
updateOne() vs updateMany() vs update()
| मेथड | व्यवहार | उपयोग |
|---|---|---|
updateOne(filter, update) | पहला मिलान अपडेट करता है | सिंगल दस्तावेज़ अपडेट |
updateMany(filter, update) | सभी मिलान अपडेट करता है | बल्क अपडेट |
update(filter, update) | Deprecated, डिफ़ॉल्ट सिंगल | विरासत कोड |
विशिष्ट दस्तावेज़ अपडेट करने के लिए फ़िल्टर का उपयोग करें
$set ऑपरेटर
$setकेवल निर्दिष्ट फ़ील्ड्स को अपडेट करता है, अन्य फ़ील्ड्स को अपरिवर्तित छोड़ देता है।