MongoDB में update() और $set का उपयोग करके दस्तावेज़ अपडेट करना
MongoDB में किसी दस्तावेज़ के विशिष्ट फील्ड को अपडेट करने के लिए update() के साथ $set ऑपरेटर का उपयोग करें। फिल्टर कंडीशन से लक्ष्य दस्तावेज़ पहचानें।
उदाहरण: संग्रह और दस्तावेज़ बनाना
> db.demo427.insertOne({"StudentId":101,"StudentName":"Chris Brown"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e75e711bbc41e36cc3cae75") }
> db.demo427.insertOne({"StudentId":102,"StudentName":"David Miller"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e75e71abbc41e36cc3cae76") }
> db.demo427.insertOne({"StudentId":103,"StudentName":"John Smith"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e75e725bbc41e36cc3cae77") }
> db.demo427.insertOne({"StudentId":104,"StudentName":"Carol Taylor"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e75e733bbc41e36cc3cae78") }
सभी दस्तावेज़ देखना
> db.demo427.find();
आउटपुट:
{ "_id" : ObjectId("5e75e711bbc41e36cc3cae75"), "StudentId" : 101, "StudentName" : "Chris Brown" }
{ "_id" : ObjectId("5e75e71abbc41e36cc3cae76"), "StudentId" : 102, "StudentName" : "David Miller" }
{ "_id" : ObjectId("5e75e725bbc41e36cc3cae77"), "StudentId" : 103, "StudentName" : "John Smith" }
{ "_id" : ObjectId("5e75e733bbc41e36cc3cae78"), "StudentId" : 104, "StudentName" : "Carol Taylor" }
StudentId 102 का नाम अपडेट करना
> db.demo427.update(
{"StudentId":102},
{$set:{"StudentName":"John Doe"}}
);
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
अपडेट के बाद दस्तावेज़ देखना
> db.demo427.find();
आउटपुट:
{ "_id" : ObjectId("5e75e711bbc41e36cc3cae75"), "StudentId" : 101, "StudentName" : "Chris Brown" }
{ "_id" : ObjectId("5e75e71abbc41e36cc3cae76"), "StudentId" : 102, "StudentName" : "John Doe" }
{ "_id" : ObjectId("5e75e725bbc41e36cc3cae77"), "StudentId" : 103, "StudentName" : "John Smith" }
{ "_id" : ObjectId("5e75e733bbc41e36cc3cae78"), "StudentId" : 104, "StudentName" : "Carol Taylor" }
मुख्य बिंदु:
{"StudentId":102}- फिल्टर: कौन सा दस्तावेज़ अपडेट करना है{$set:{"StudentName":"John Doe"}}- केवल StudentName फील्ड अपडेट करता है$setके बिना पूरा दस्तावेज़ रिप्लेस हो जाएगा- डिफ़ॉल्ट रूप से केवल पहला मिलान अपडेट होता है
आधुनिक सिंटैक्स (MongoDB 3.2+):
// एक दस्तावेज़ अपडेट
db.demo427.updateOne(
{"StudentId": 102},
{$set: {"StudentName": "John Doe"}}
)
// एकाधिक दस्तावेज़ अपडेट
db.demo427.updateMany(
{"StudentId": {$gt: 100}},
{$set: {"Status": "Active"}}
)
// अपसर्ट (नहीं मिले तो इन्सर्ट)
db.demo427.updateOne(
{"StudentId": 105},
{$set: {"StudentName": "New Student"}},
{upsert: true}
)