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

MongoDB में multi पैरामीटर के साथ एकाधिक दस्तावेज़ अपडेट कैसे करें?

MongoDB में (विरासत update() सिंटैक्स में) एक क्वेरी से मेल खाने वाले सभी दस्तावेज़ों को अपडेट करने के लिए, तीसरे तर्क में multi: true विकल्प शामिल करें। आधुनिक ड्राइवर updateMany() का उपयोग करते हैं।

उदाहरण: डुप्लिकेट नाम वाले दस्तावेज़

> db.demo390.insertOne({"FirstName":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e5d1f3a22064be7ab44e7fa") }
> db.demo390.insertOne({"FirstName":"David"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e5d1f3e22064be7ab44e7fb") }
> db.demo390.insertOne({"FirstName":"Bob"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e5d1f4122064be7ab44e7fc") }
> db.demo390.insertOne({"FirstName":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e5d1f4422064be7ab44e7fd") }

अपडेट से पहले

> db.demo390.find();

आउटपुट: दो "Chris", एक "David", एक "Bob"।

विरासत अपडेट साथ multi: true

> db.demo390.update(
    { FirstName: "Chris" },
    { $set: { "FirstName": "John" } },
    { multi: true }
);
WriteResult({ "nMatched" : 2, "nUpserted" : 0, "nModified" : 2 })

अपडेट के बाद

> db.demo390.find();

आउटपुट: दोनों "Chris" दस्तावेज़ अब "John" हैं।

आधुनिक सिंटैक्स (MongoDB 3.2+)

> db.demo390.updateMany(
    { FirstName: "Chris" },
    { $set: { "FirstName": "John" } }
);

updateMany डिफ़ॉल्ट रूप से सभी मिलान वाले दस्तावेज़ों को अपडेट करता है; multi की आवश्यकता नहीं।

मुख्य अंतर

मेथडव्यवहार
update(query, update)डिफ़ॉल्ट रूप से पहला मिलान अपडेट करता है; multi:true के साथ सभी।
updateOne(query, update)पहला मिलान अपडेट करता है।
updateMany(query, update)सभी मिलान अपडेट करता है।

सर्वोत्तम अभ्यास

  • नए कोड में updateOne/updateMany का उपयोग करें; update विरासत है।
  • बड़े बैच अपडेट के लिए, bulkWrite का उपयोग करें।
  • परिणाम में nMatched/nModified की जांच करके प्रभाव की पुष्टि करें।
  1. - MongoDB में एक क्वेरी से कई डॉक्यूमेंट्स कैसे अपडेट करें?

    एक क्वेरी से कई डॉक्यूमेंट्स अपडेट करने के लिए MongoDB में bulkWrite() का उपयोग करें। आइए एक कलेक्शन बनाते हैं: > db.demo760.insertOne({id:1,details:{Value1:100,Value2:50}}); { acknowledged : true, insertedId : ObjectId(5eb0309f5637cd592b2a4aee) } > db.demo760.insertOne({id:2,details:{Value1:

  1. - MySQL में IF स्टेटमेंट का उपयोग करके एकाधिक मान अपडेट करना

    MySQL में IF() फ़ंक्शन का उपयोग करके शर्ती अपडेट किए जा सकते हैं। यह एक ही क्वेरी में अलग-अलग शर्तों के आधार पर अलग-अलग मान सेट करने की अनुमति देता है। सिंटैक्स UPDATE table_name SET column_name = IF(condition, value_if_true, value_if_false) WHERE condition; व्यावहारिक उदाहरण 1. टेबल बनाएं और डे

  1. - MySQL में WHERE क्लॉज में एकाधिक शर्तों के साथ UPDATE कैसे करें?

    MySQL में UPDATE स्टेटमेंट के WHERE क्लॉज में AND ऑपरेटर का उपयोग करके एकाधिक शर्तें निर्दिष्ट करके विशिष्ट पंक्तियों को अपडेट किया जा सकता है। सिंटैक्स UPDATE table_name SET column = value WHERE condition1 AND condition2 AND ...; उदाहरण तालिका बनाएं और डेटा डालें: mysql> CREATE TABLE DemoTable