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

MongoDB में की-वैल्यू पेयर्स की सूची से दस्तावेज़ बल्क अपडेट करें

MongoDB बल्क ऑपरेशन्स के साथ एकाधिक दस्तावेज़ अपडेट करना

जब कई दस्तावेज़ों को अलग-अलग मानों के साथ अपडेट करना हो, तो बल्क ऑपरेशन्स का उपयोग करना अधिक कुशल होता है क्योंकि यह नेटवर्क राउंड-ट्रिप्स को कम करता है।

सैंपल डेटा बनाना

> db.demo227.insertOne({"_id":"101","Name":"Chris"});
{ "acknowledged" : true, "insertedId" : "101" }
> db.demo227.insertOne({"_id":"102","Name":"Bob"});
{ "acknowledged" : true, "insertedId" : "102" }

बल्क अपडेट ऑपरेशन

> var bulkUpdateValue = [
    {"_id": "101", "Name": "Robert"},
    {"_id": "102", "Name": "Sam"}
];
> var bulkUpdate = db.demo227.initializeUnorderedBulkOp();
> var updateCounter = undefined;
> for (var i = 0; i < bulkUpdateValue.length; i++) {
    updateCounter = bulkUpdateValue[i];
    bulkUpdate.find( {_id: updateCounter._id} ).update( {$set: {Name: updateCounter.Name}} );
}
> bulkUpdate.execute();
BulkWriteResult({
    "writeErrors" : [ ],
    "writeConcernErrors" : [ ],
    "nInserted" : 0,
    "nUpserted" : 0,
    "nMatched" : 2,
    "nModified" : 2,
    "nRemoved" : 0,
    "upserted" : [ ]
})

अपडेटेड दस्तावेज़ देखना

> db.demo227.find();

आउटपुट:

{ "_id" : "101", "Name" : "Robert" }
{ "_id" : "102", "Name" : "Sam" }

आधुनिक विकल्प: bulkWrite()

नए MongoDB वर्जन (3.2+) में bulkWrite() विधि अधिक सरल है:

> db.demo227.bulkWrite([
    { updateOne: { filter: { _id: "101" }, update: { $set: { Name: "Robert" } } } },
    { updateOne: { filter: { _id: "102" }, update: { $set: { Name: "Sam" } } } }
]);

मुख्य लाभ

  • अनऑर्डर्ड बल्क ऑप्स समानांतर निष्पादन की अनुमति देते हैं
  • सिंगल नेटवर्क राउंड-ट्रिप में कई ऑपरेशन्स
  • बेहतर परफॉर्मेंस बड़े बैच अपडेट्स के लिए
  1. - MongoDB क्वेरी: फील्ड वैल्यू ऐरे होने पर दस्तावेज़ों से नामों की विशिष्ट सूची प्राप्त करना

    इसके लिए $all का उपयोग करें। $all ऑपरेटर उन दस्तावेज़ों को चुनता है जहां फील्ड का मान एक ऐरे होता है जिसमें सभी निर्दिष्ट एलिमेंट्स होते हैं। नमूना डेटा बनाना db.demo642.insertOne({ _id:2, ListOfNames:[Robert,Chris] }); सभी दस्तावेज़ देखना db.demo642.find(); { ListOfNames : [ Robert, John ] } {

  1. - MongoDB में Document से Array Value Delete करना

    Array values delete करने के लिए MongoDB में $pull का उपयोग करें। $pull operator existing array से उन सभी instances को remove करता है जो specified condition से match करते हैं। Collection बनाना > db.demo535.insertOne( ... { ... studentId : 101, ... studentName : Chris, ... ListOfMailIds : [

  1. - MongoDB शेल का उपयोग करके दस्तावेज़ों से विशिष्ट मान वाले आइटम कैसे प्राप्त करें?

    MongoDB शेल में find() से विशिष्ट मान वाले दस्तावेज़ फ़िल्टर करें विशिष्ट मान वाले आइटम प्राप्त करने के लिए, बस find() का उपयोग करें। आइए दस्तावेज़ों के साथ एक संग्रह बनाते हैं: > db.demo563.insertOne({Name:Chris,Age:21,isMarried:true}) { acknowledged : true, insertedId : ObjectId(5e8f546c54b4472