MongoDB में $set ऑपरेटर का उपयोग करके चुनिंदा फ़ील्ड्स अपडेट करना
$set ऑपरेटर केवल निर्दिष्ट फ़ील्ड्स के मान को अपडेट करता है, अन्य सभी फ़ील्ड्स को अपरिवर्तित छोड़ देता है। यह आंशिक अपडेट के लिए मानक तरीका है।
सैंपल डेटा बनाना
> db.demo265.insertOne({"id":101,"Name":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e480d781627c0c63e7dbaa4") }
> db.demo265.insertOne({"id":102,"Name":"Bob"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e480d7d1627c0c63e7dbaa5") }
> db.demo265.insertOne({"id":103,"Name":"David"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e480d841627c0c63e7dbaa6") }
दस्तावेज़ देखना
> db.demo265.find();
आउटपुट:
विशिष्ट फ़ील्ड अपडेट करना (Name="David" वाले दस्तावेज़ का id बदलें)
> db.demo265.update({Name:"David"}, {$set: {id: 10004}}); WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })अपडेटेड दस्तावेज़ देखना
> db.demo265.find();आउटपुट (केवल David का id बदला, Name अपरिवर्तित):
$set के बिना क्या होता?
यदि आप
{ id: 10004 }(बिना $set) उपयोग करते, तो **पूरा दस्तावेज़ बदल जाता** (Name फ़ील्ड खो जाता):आधुनिक मेथड्स
अन्य उपयोगी अपडेट ऑपरेटर्स
| ऑपरेटर | उपयोग |
|---|---|
$inc | संख्यात्मक फ़ील्ड बढ़ाएं/घटाएं |
$mul | संख्यात्मक फ़ील्ड गुणा करें |
$unset | फ़ील्ड हटाएं |
$min/$max | शर्ती अपडेट (केवल यदि नया मान छोटा/बड़ा है) |
$currentDate | फ़ील्ड को वर्तमान डेट पर सेट करें |