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

MongoDB-এ ফিল্ড থেকে নির্দিষ্ট সংখ্যক ক্যারেক্টার বের করার পদ্ধতি ($substr)

MongoDB-এ স্ট্রিং ফিল্ড থেকে নির্দিষ্ট পজিশন থেকে নির্দিষ্ট দৈর্ঘ্যের সাবস্ট্রিং বের করতে এগ্রিগেশন পাইপলাইনে $substr (বা $substrBytes/$substrCP) অপারেটর ব্যবহার করুন।

উদাহরণ

দীর্ঘ টাইটেল সহ ডকুমেন্ট তৈরি করুন:

> db.limitTheNumberOfCharactersDemo.insertOne({"Title": "MongoDB is No SQL database"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cf23013b64a577be5a2bc0e") }

> db.limitTheNumberOfCharactersDemo.insertOne({"Title": "MySQL is a relational database"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cf2302db64a577be5a2bc0f") }

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

> db.limitTheNumberOfCharactersDemo.find().pretty();

আউটপুট:

{ "_id" : ObjectId("5cf23013b64a577be5a2bc0e"), "Title" : "MongoDB is No SQL database" }
{ "_id" : ObjectId("5cf2302db64a577be5a2bc0f"), "Title" : "MySQL is a relational database" }

প্রতিটি টাইটেল থেকে প্রথম ২০ ক্যারেক্টার বের করা

> db.limitTheNumberOfCharactersDemo.aggregate([
    {
        $project: {
            Characters: { $substr: [ "$Title", 0, 20 ] }
        }
    }
]);

আউটপুট:

{ "_id" : ObjectId("5cf23013b64a577be5a2bc0e"), "Characters" : "MongoDB is No SQL da" }
{ "_id" : ObjectId("5cf2302db64a577be5a2bc0f"), "Characters" : "MySQL is a relationa" }

ব্যাখ্যা:

  • $substr: [ "$Title", 0, 20 ] — $Title ফিল্ড থেকে ০ ইনডেক্স (শুরু) থেকে ২০ ক্যারেক্টার বের করে।
  • $substrBytes — বাইট সংখ্যা (UTF-8 এ এক ক্যারেক্টার একাধিক বাইট হতে পারে)।
  • $substrCP — কোড পয়েন্ট (Unicode ক্যারেক্টার) সংখ্যা, মাল্টি-বাইট ক্যারেক্টারের জন্য সঠিক।

সুপারিশ: MongoDB ৩.৪+ এ $substrCP ব্যবহার করুন ইউনিকোড সাপোর্টের জন্য।

  1. ফর্ম ইনপুট টেক্সট ফিল্ডে ক্যারেক্টার সংখ্যা কীভাবে সীমাবদ্ধ করবেন?

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

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

  4. MySQL-এ ডেটাবেস ফিল্ড থেকে স্পেশাল ক্যারেক্টার মুছে ফেলা