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

MongoDB-তে স্ট্রিং লেন্থ (দৈর্ঘ্য) অনুযায়ী কুয়েরি কীভাবে করবেন?

$regex অপারেটর ব্যবহার

স্ট্রিং ফিল্ডের দৈর্ঘ্য (length) অনুযায়ী ফিল্টার করার জন্য রেগুলার এক্সপ্রেশন ($regex) ব্যবহার করা হয়।

সিনট্যাক্স

db.yourCollectionName.find({ 
    'yourFieldName': { $regex: /^.{minLength,maxLength}$/ } 
});

উদাহরণ: ডকুমেন্ট তৈরি

> db.queryLengthDemo.insertOne({"StudentFullName":"John Smith"});
{ "acknowledged" : true, "insertedId" : ObjectId("5c9a01ae353decbc2fc927c0") }
> db.queryLengthDemo.insertOne({"StudentFullName":"John Doe"});
{ "acknowledged" : true, "insertedId" : ObjectId("5c9a01b4353decbc2fc927c1") }
> db.queryLengthDemo.insertOne({"StudentFullName":"David Miller"});
{ "acknowledged" : true, "insertedId" : ObjectId("5c9a01c2353decbc2fc927c2") }
> db.queryLengthDemo.insertOne({"StudentFullName":"Robert Taylor"});
{ "acknowledged" : true, "insertedId" : ObjectId("5c9a01e2353decbc2fc927c3") }
> db.queryLengthDemo.insertOne({"StudentFullName":"Chris Williams"});
{ "acknowledged" : true, "insertedId" : ObjectId("5c9a01f1353decbc2fc927c4") }

কুয়েরি: লেন্থ ৯ থেকে ১২ এর মাঝপথ (স্পেস সহ)

> db.queryLengthDemo.find({ 
    StudentFullName: { $regex: /^.{9,12}$/ } 
}).pretty();

আউটপুট:

{ "StudentFullName" : "John Smith" }      // 10 chars
{ "StudentFullName" : "David Miller" }    // 12 chars

Regex ব্যাখ্যা

  • ^ - স্ট্রিং শুরু
  • .{9,12} - যেকোনো ক্যারেক্টার ৯ থেকে ১২ বার
  • $ - স্ট্রিং শেষ

সতর্কতা: রেগেক্স কুয়েরি ইনডেক্স ব্যবহার করতে পারে না (কেস-ইনসেনসিটিভ বা এনকর ছাড়া)। বড় কালেকশনে পারফরম্যান্স খারাপ হতে পারে।

  1. MongoDB-এ অ্যারে-র ভেতর রেঞ্জ (Range) কোয়েরি: $gt এবং $lt ব্যবহার

  2. MongoDB-এ সাব-ডকুমেন্ট খুঁজে বের করা নির্দিষ্ট শর্ত অনুযায়ী ($filter, $match)

  3. MongoDB-তে LIMIT ব্যবহার করে কোয়ারি করার পদ্ধতি

  4. MongoDB-তে কেস-ইনসেনসিটিভ (Case-Insensitive) সার্চ করা ($regex)