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

MongoDB-এ ভেরিয়েবল নিজের মান দিয়ে আপডেট করা (সীমাবদ্ধতা এবং সমাধান)

MongoDB-এ একটি ফিল্ডকে নিজের মান দিয়ে আপডেট করার সীমাবদ্ধতা

MongoDB-এ সরাসরি একটি ফিল্ডকে নিজের মান দিয়ে আপডেট করা যায় না (যেমন: Name = Name + " text")। এর পরিবর্তে $set এবং অগ্রেশন পাইপলাইন বা অ্যাপ্লিকেশন লেভেলে প্রসেস করতে হয়।

নমুনা সংগ্রহ তৈরি

> db.demo256.insertOne({"Name":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e47a3e91627c0c63e7dba8b") }
> db.demo256.insertOne({"Name":"Bob"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e47a3ea1627c0c63e7dba8c") }
> db.demo256.insertOne({"Name":"David"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e47a3eb1627c0c63e7dba8d") }

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

> db.demo256.find();

আউটপুট:


ভুল পদ্ধতি (স্ট্রিং কনক্যাটেনেশন সরাসরি update-এ কাজ করে না)

> db.demo256.update({}, {$set:{"Name":"Name" + " is a student"}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

ফলাফল (ভুলভাবে "Name is a student" লেখা গেছে):


সঠিক পদ্ধতি (MongoDB 4.2+): অগ্রেশন পাইপলাইন ব্যবহার করে $concat দিয়ে আপডেট করতে হয়:

db.demo256.updateMany({}, [{ $set: { Name: { $concat: ["$Name", " is a student"] } } }])
  1. MongoDB-তে প্রতিটি কর্মীর বেতন ১০% বাড়ানো

  2. MongoDB save() মেথডে ভেরিয়েবল মান সেট করা

  3. MongoDB-তে ছাত্র ডেভিডের মার্কস আপডেট করা

  4. MongoDB-এ সাব-কালেকশন সহ কনকারেন্ট আপডেট (update with $push)