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

MongoDB-এ ক্যাপড (Capped) কালেকশনে সিঙ্গেল ফিল্ড আপডেট করা

MongoDB-এ ক্যাপড (Capped) কালেকশন - যা ফিক্সড সাইজ এবং ইনসারশন অর্ডার মেইনটেইন করে - তেও ফিল্ড আপডেট করা যায়, শর্ত হলো ডকুমেন্ট সাইজ বেড়া না যাবে। update() মেথড ব্যবহার করা হয়।

ক্যাপড কালেকশন তৈরি এবং ডকুমেন্ট ইনসার্ট

> db.createCollection("Demo112", { capped: true, size: 14, max: 3 });
{ "ok" : 1 }
> db.demo112.insertOne({"Name":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e2ef47a9fd5fd66da21447e") }
> db.demo112.insertOne({"Name":"David"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e2ef47e9fd5fd66da21447f") }
> db.demo112.insertOne({"Name":"David"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e2ef4919fd5fd66da214480") }

ক্যাপড কালেকশন সেটিংস: size: 14 বাইট (খুব ছোট, ডেমো용), max: 3 - সর্বোচ্চ ৩টি ডকুমেন্ট। পুরনো ডকুমেন্ট অটো ডিলিট হয়ে যায়।

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

> db.demo112.find();

আউটপুট:

{ "_id" : ObjectId("5e2ef47a9fd5fd66da21447e"), "Name" : "Chris" }
{ "_id" : ObjectId("5e2ef47e9fd5fd66da21447f"), "Name" : "David" }
{ "_id" : ObjectId("5e2ef4919fd5fd66da214480"), "Name" : "David" }

ক্যাপড কালেকশনে ফিল্ড আপডেট

> db.demo112.update(
...   {Name: "David"},
...   {$set: {Name: "Robert"}},
...   {multi: true}
... );
WriteResult({ "nMatched" : 2, "nUpserted" : 0, "nModified" : 2 })

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

> db.demo112.find();

আউটপুট (দুইটি David → Robert):

{ "_id" : ObjectId("5e2ef47a9fd5fd66da21447e"), "Name" : "Chris" }
{ "_id" : ObjectId("5e2ef47e9fd5fd66da21447f"), "Name" : "Robert" }
{ "_id" : ObjectId("5e2ef4919fd5fd66da214480"), "Name" : "Robert" }

ক্যাপড কালেকশনে আপডেটের সীমাবদ্ধতা:

  • ডকুমেন্ট সাইজ বাড়ানো যায় না (নতুন ফিল্ড যোগ বা স্ট্রিং বড় করলে এরর হবে)
  • ডকুমেন্ট সাইজ কমানো যায় (ফিল্ড ডিলিট বা স্ট্রিং ছোট করলে)
  • উদাহরণে "David" (৫ ক্যারেক্টার) → "Robert" (৬ ক্যারেক্টার) - সাইজ বেড়েছে কিন্তু এই কেসে ডকুমেন্ট খুব ছোট (size: 14 বাইট লিমিট) হলে এরর দিতে পারে। ডেমোতে কাজ করছে কারণ প্যাডিং/ওভারহেড আছে।

আধুনিক পদ্ধতি:

db.demo112.updateMany({Name: "David"}, {$set: {Name: "Robert"}})

ক্যাপড কালেকশন ব্যবহারের ক্ষেত্র: লগিং, ক্যাশিং, রিয়েল-টাইম অ্যানালিটিক্স, মেট্রিক্স - যেখানে পুরানো ডেটা অটোমেটিক्ली এক্সপায়ার হোক।

  1. MongoDB-এ নতুন কালেকশন কীভাবে তৈরি করবেন?

  2. MongoDB ফিল্ড আপডেট করা অন্য ফিল্ডের ভ্যালু ব্যবহার করে

  3. MongoDB-এ একটি নির্দিষ্ট ফিল্ড কীভাবে সিলেক্ট করবেন?

  4. মongoDB-এ একক কমান্ডে সার্ভার বন্ধ করার পদ্ধতি