MongoDB में update() और $set का उपयोग करके सशर्त अपडेट करना
MongoDB में किसी शर्त के आधार पर दस्तावेज़ को अपडेट करने के लिए update() मेथड के साथ क्वेरी फिल्टर और $set ऑपरेटर का उपयोग करें। upsert: true विकल्प दस्तावेज़ न मिलने पर नया दस्तावेज़ बनाता है।
उदाहरण: संग्रह और दस्तावेज़ बनाना
> db.demo402.insertOne({id:101,"Name":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e61214efac4d418a0178585") }
> db.demo402.insertOne({id:102,"Name":"David"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e612150fac4d418a0178586") }
> db.demo402.insertOne({id:103,"Name":"Mike"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e612152fac4d418a0178587") }
सभी दस्तावेज़ देखना
> db.demo402.find();
आउटपुट:
{ "_id" : ObjectId("5e61214efac4d418a0178585"), "id" : 101, "Name" : "Chris" }
{ "_id" : ObjectId("5e612150fac4d418a0178586"), "id" : 102, "Name" : "David" }
{ "_id" : ObjectId("5e612152fac4d418a0178587"), "id" : 103, "Name" : "Mike" }
सशर्त अपडेट क्वेरी (id: 102 का नाम बदलकर Robert करना)
> db.demo402.update(
{id:102},
{ $set: { Name: "Robert" } },
{upsert: true }
)
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
अपडेट के बाद दस्तावेज़ देखना
> db.demo402.find();
आउटपुट:
{ "_id" : ObjectId("5e61214efac4d418a0178585"), "id" : 101, "Name" : "Chris" }
{ "_id" : ObjectId("5e612150fac4d418a0178586"), "id" : 102, "Name" : "Robert" }
{ "_id" : ObjectId("5e612152fac4d418a0178587"), "id" : 103, "Name" : "Mike" }
मुख्य बिंदु:
{id:102}- फिल्टर कंडीशन (कौन सा दस्तावेज़ अपडेट करना है)$set: { Name: "Robert" }- केवल Name फील्ड को अपडेट करता है, अन्य फील्ड्स अपरिवर्तित रहते हैंupsert: true- यदि दस्तावेज़ न मिले तो नया बनाता हैmulti: true(डिफ़ॉल्ट false) - एकाधिक दस्तावेज़ अपडेट करने के लिए
आधुनिक सिंटैक्स (MongoDB 3.2+): updateOne(), updateMany(), replaceOne() का उपयोग करें।