Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MongoDB

MongoDB Update() मेथड पूरे फील्ड के रिकॉर्ड सेट करने के लिए कैसे काम करता है?

MongoDB में $set के साथ मल्टीपल डॉक्यूमेंट्स अपडेट करना

update() मेथड के साथ $set ऑपरेटर का उपयोग करके एक फील्ड के मान को अपडेट किया जा सकता है। जब multi: true विकल्प के साथ उपयोग किया जाता है, तो यह क्वेरी मानदंड से मेल खाने वाले सभी डॉक्यूमेंट्स को अपडेट करता है।

नमूना डेटा बनाना

> db.workingOfUpdateMethod.insertOne({"ClientCountryName" : "AUS"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd506fe2cba06f46efe9efa") }
> db.workingOfUpdateMethod.insertOne({"ClientCountryName" : "AUS"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd507022cba06f46efe9efb") }
> db.workingOfUpdateMethod.insertOne({"ClientCountryName" : "AUS"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd507022cba06f46efe9efc") }
> db.workingOfUpdateMethod.insertOne({"ClientCountryName" : "AUS"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd507032cba06f46efe9efd") }

अपडेट से पहले सभी डॉक्यूमेंट्स देखना

> db.workingOfUpdateMethod.find().pretty();

आउटपुट:

{ "_id" : ObjectId("5cd506fe2cba06f46efe9efa"), "ClientCountryName" : "AUS" }
{ "_id" : ObjectId("5cd507022cba06f46efe9efb"), "ClientCountryName" : "AUS" }
{ "_id" : ObjectId("5cd507022cba06f46efe9efc"), "ClientCountryName" : "AUS" }
{ "_id" : ObjectId("5cd507032cba06f46efe9efd"), "ClientCountryName" : "AUS" }

multi: true के साथ सभी मिलान करने वाले डॉक्यूमेंट्स अपडेट करना

ClientCountryName फील्ड को "AUS" से "UK" में उन सभी डॉक्यूमेंट्स के लिए बदलें जहां यह "AUS" है:

> db.workingOfUpdateMethod.update(
  { "ClientCountryName" : "AUS" },
  { $set: { "ClientCountryName" : "UK" } },
  { multi: true }
);
WriteResult({ "nMatched" : 4, "nUpserted" : 0, "nModified" : 4 })

अपडेट के बाद डॉक्यूमेंट्स वेरिफाई करना

> db.workingOfUpdateMethod.find().pretty();

आउटपुट:

{ "_id" : ObjectId("5cd506fe2cba06f46efe9efa"), "ClientCountryName" : "UK" }
{ "_id" : ObjectId("5cd507022cba06f46efe9efb"), "ClientCountryName" : "UK" }
{ "_id" : ObjectId("5cd507022cba06f46efe9efc"), "ClientCountryName" : "UK" }
{ "_id" : ObjectId("5cd507032cba06f46efe9efd"), "ClientCountryName" : "UK" }

महत्वपूर्ण नोट्स

  • multi: true - क्वेरी से मेल खाने वाले सभी डॉक्यूमेंट्स को अपडेट करता है। इसके बिना, केवल पहला मिलान करने वाला डॉक्यूमेंट अपडेट होता है।
  • $set - निर्दिष्ट फील्ड के मान को प्रतिस्थापित करता है; अन्य फील्ड्स अप्रभावित रहते हैं।
  • WriteResult - nMatched (मिलान किए गए डॉक्यूमेंट्स), nModified (वास्तव में बदले गए), और nUpserted (अपसर्ट किए गए) दिखाता है।
आधुनिक MongoDB संस्करणों में: update() के बजाय updateMany() का उपयोग करने पर विचार करें, जो डिफ़ॉल्ट रूप से मल्टीपल डॉक्यूमेंट्स को अपडेट करता है और multi: true की आवश्यकता नहीं होती है।
  1. - MongoDB में सशर्त अपडेट करना

    MongoDB में update() और $set का उपयोग करके सशर्त अपडेट करना MongoDB में किसी शर्त के आधार पर दस्तावेज़ को अपडेट करने के लिए update() मेथड के साथ क्वेरी फिल्टर और $set ऑपरेटर का उपयोग करें। upsert: true विकल्प दस्तावेज़ न मिलने पर नया दस्तावेज़ बनाता है। उदाहरण: संग्रह और दस्तावेज़ बनाना > db.dem

  1. - MongoDB में टाइमस्टैम्प कैसे अपडेट करें और वर्तमान तारीख पर सेट करें?

    अपडेट करने के लिए MongoDB में update() का उपयोग करें। वर्तमान तारीख पर सेट करने के लिए, आपको वर्तमान तारीख प्राप्त करने की आवश्यकता है: var todayDate = new Date(); नमूना डेटा बनाना db.demo644.insertOne({ShippingDate:new ISODate(2019-01-10)}); अपडेट से पहले दस्तावेज़ देखना db.demo644.find(); { S

  1. - MongoDB Query - केवल Specific Field Value Update करना

    आइए उदाहरण देखते हैं और documents के साथ collection बनाते हैं: Collection बनाना > db.demo557.insertOne({Name:Chris}); { acknowledged : true, insertedId : ObjectId(5e8f28e954b4472ed3e8e864) } > db.demo557.insertOne({Name:David}); { acknowledged : true, insertedId : ObjectId(5e8f28ee54b4472ed3e