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

MongoDB-এ ফিল্ড আপডেট করে কলামের বর্তমান ডেটা মডিফাই করা

MongoDB-এ ফিল্ডের বর্তমান মান ব্যবহার করে নতুন মান সেট করতে (যেমন স্ট্রিং ক্যাটেনেশন) find() + forEach() + update() কম্বিনেশন ব্যবহার করা হয়।

কলেকশন এবং ডকুমেন্ট তৈরি

> db.demo115.insertOne({"LastName":"Brown"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e2efe9bd8f64a552dae635a") }

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

> db.demo115.find();

আউটপুট:

{ "_id" : ObjectId("5e2efe9bd8f64a552dae635a"), "LastName" : "Brown" }

ফিল্ড আপডেট করার কোয়ারী (forEach ব্যবহার করে)

find() কার্সর দিয়ে ইটেরেট করে প্রতিটি ডকুমেন্টের জন্য update() কল করা হয়েছে:

> db.demo115.find({"LastName":"Brown"}).forEach(function(d) {
...   db.demo115.update({_id: d._id}, {$set: {LastName: 'Hello ' + d.LastName}});
... });

আপডেটের পর ডকুমেন্ট দেখানো

> db.demo115.find();

আউটপুট (LastName: "Brown" → "Hello Brown"):

{ "_id" : ObjectId("5e2efe9bd8f64a552dae635a"), "LastName" : "Hello Brown" }

ব্যাখ্যা:

  • find({"LastName":"Brown"}) - শর্ত অনুযায়ী ডকুমেন্ট খুঁজে বের করে
  • .forEach(function(d) {...}) - প্রতিটি ডকুমেন্ট d ভেরিয়েবলে পাওয়া যায়
  • d._id - ডকুমেন্টের ইউনিক আইডি
  • d.LastName - বর্তমান মান ("Brown")
  • 'Hello ' + d.LastName - স্ট্রিং ক্যাটেনেশন ("Hello Brown")
  • $set: {LastName: ...} - শুধু LastName ফিল্ড আপডেট

আধুনিক এবং উন্নত পদ্ধতি (MongoDB 4.2+):

$set এ এক্সপ্রেশন (aggregation pipeline syntax) ব্যবহার করে একক অপারেশনে:

db.demo115.updateMany(
  { LastName: "Brown" },
  [ { $set: { LastName: { $concat: ["Hello ", "$LastName"] } } } ]
)

এটি অটোমিক, দ্রুত, এবং অ্যাপ্লিকেশন লেভেল লুপ ছাড়া কাজ করে।

সতর্কতা: forEach পদ্ধতিতে কনকারেন্সি ইস্যু হতে পারে (অন্য প্রসেস ডকুমেন্ট মডিফাই করলে)। প্রোডাকশনে পাইপলাইন আপডেট (updateMany with aggregation pipeline) ব্যবহার করুন।

  1. MongoDB-এ ফার্স্টনেম এবং লাস্টনেম কম্বাইন করে খুঁজে বের করা

  2. MongoDB-এ নির্দিষ্ট ফিল্ডের সব ডকুমেন্টের মান যোগ করা (aggregate $sum)

  3. MongoDB-তে $slice ব্যবহার করে ফিল্ডের রিটার্নিং ভ্যালু লিমিট করা

  4. MongoDB-তে ডট নোটেশন ব্যবহার করে নেস্টেড ডকুমেন্ট আপডেট করা