কম্পিউটার টিউটোরিয়াল

MongoDB-এ বাল্ক আপডেট: কি-ভ্যালু জোড়া থেকে একাধিক ডকুমেন্ট আপডেট করা

MongoDB-এ বাল্ক আপডেট অপারেশন

অনেকগুলো ডকুমেন্ট একসাথে আপডেট করার জন্য MongoDB-র initializeUnorderedBulkOp() ব্যবহার করা হয়। এটি পারফরম্যান্স উল্লেখযোগ্যভাবে বাড়ায় কারণ সকল অপারেশন একসাথে সার্ভারে পাঠানো হয়।

নমুনা ডেটা তৈরি

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

সকল ডকুমেন্ট দেখানো

> db.demo227.find();

আউটপুট:

{ "_id" : "101", "Name" : "Chris" }
{ "_id" : "102", "Name" : "Bob" }

বাল্ক আপডেট কোড

> var bulkUpdateValue = [
    {"_id": "101", "Name": "Robert"},
    {"_id": "102", "Name": "Sam"}
];
> var bulkUpdate = db.demo227.initializeUnorderedBulkOp();
> for (var i = 0; i < bulkUpdateValue.length; i++) {
    var 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-তে নেস্টেড এম্বেডেড ডকুমেন্ট আপডেট করা

  2. MongoDB-তে অ্যারে ফিল্ড থেকে নির্দিষ্ট নামের তালিকা পাওয়া

  3. MongoDB-এ ডকুমেন্ট থেকে অ্যারে ভ্যালু ডিলিট করা

  4. MongoDB শেল-এ নির্দিষ্ট মান অনুযায়ী ডকুমেন্ট ফিল্টার করে প্রিন্ট করা