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 ব্যবহার করুন ইউনিকোড সাপোর্টের জন্য।