MongoDB-এ স্ট্রিং ফিল্ডের শুরু এবং শেষের হোয়াইটস্পেস (whitespace) রিমুভ করতে অ্যাগ্রিগেশন পাইপলাইনে $trim অপারেটর ব্যবহার করা হয় (MongoDB 4.0+)।
কলেকশন এবং ডকুমেন্ট তৈরি
> db.demo217.insertOne({"FullName":" Chris Brown"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e3e5d1e03d395bdc213470f") }
> db.demo217.insertOne({"FullName":" David Miller"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e3e5d2503d395bdc2134710") }
> db.demo217.insertOne({"FullName":" John Doe"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e3e5d2b03d395bdc2134711") }
সব ডকুমেন্ট দেখানো
> db.demo217.find();
আউটপুট (শুরুতে দুটি স্পেস):
{ "_id" : ObjectId("5e3e5d1e03d395bdc213470f"), "FullName" : " Chris Brown" }
{ "_id" : ObjectId("5e3e5d2503d395bdc2134710"), "FullName" : " David Miller" }
{ "_id" : ObjectId("5e3e5d2b03d395bdc2134711"), "FullName" : " John Doe" }
স্পেস ট্রিম করার কোয়ারী
> db.demo217.aggregate([
... { $project: { Name: { $trim: { input: "$FullName" } } } }
... ]);
ফলাফল
{ "_id" : ObjectId("5e3e5d1e03d395bdc213470f"), "Name" : "Chris Brown" }
{ "_id" : ObjectId("5e3e5d2503d395bdc2134710"), "Name" : "David Miller" }
{ "_id" : ObjectId("5e3e5d2b03d395bdc2134711"), "Name" : "John Doe" }
ব্যাখ্যা:
$trim: {input: "$FullName"}- FullName ফিল্ড থেকে লিডিং (শুরু) এবং ট্রেইলিং (শেষ) হোয়াইটস্পেস রিমুভ করে- মিডল स्पেস (শব্দের মাঝপথে) রিমুভ হয় না
- নতুন ফিল্ড
Nameএ ট্রিমড ভ্যালু আসে
উন্নত $trim অপশনসমূহ:
{ $trim: { input: "$FullName", chars: " *" } } // নির্দিষ্ট ক্যারেক্টার ট্রিম (স্পেস এবং *)
সংশ্লিষ্ট স্ট্রিং অপারেটর (MongoDB 4.0+):
$ltrim- শুধু লিডিং (শুরু) স্পেস রিমুভ$rtrim- শুধু ট্রেইলিং (শেষ) স্পেস রিমুভ$split,$concat,$substr,$toLower,$toUpper,$replaceOne,$replaceAll
আপডেটে ট্রিম (MongoDB 4.2+ পাইপলাইন আপডেট):
db.demo217.updateMany(
{},
[{ $set: { FullName: { $trim: { input: "$FullName" } } } }]
)
এটি সব ডকুমেন্টের FullName ইন-প্লেস ট্রিম করবে।
নোট: $trim MongoDB 4.0+ এ উপলব্ধ। পুরানো ভার্সনে $substr + লজিক বা অ্যাপ্লিকেশন লেভেলে ট্রিম করতে হতো।