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

MongoDB-এ কেস-ইনসেনসিটিভ কোয়েরি কীভাবে করবেন?

MongoDB-এ কেস-ইনসেনসিটিভ (বড়/ছোট হাতের অক্ষর উপেক্ষা করে) সার্চ করার জন্য রেগুলার এক্সপ্রেশন (regex) এর i ফ্ল্যাগ ব্যবহার করা হয়। এটি স্ট্রিং ম্যাচিং-এ বড় ও ছোট হাতের অক্ষরের পার্থক্য না করে।

সিনট্যাক্স

db.yourCollectionName.find({ "yourFieldName": /^yourvalue$/i });
  • ^ - স্ট্রিংয়ের শুরু
  • $ - স্ট্রিংয়ের শেষ
  • i - কেস-ইনসেনসিটিভ ফ্ল্যাগ

নমুনা কালেকশন তৈরি

> db.caseInsensitiveDemo.insertOne({ "Name": "John" });
{ "acknowledged": true, "insertedId": ObjectId("5c6d7a67f2db199c1278e7ef") }

> db.caseInsensitiveDemo.insertOne({ "Name": "JOHN" });
{ "acknowledged": true, "insertedId": ObjectId("5c6d7ad6f2db199c1278e7f0") }

সমস্ত ডকুমেন্ট প্রদর্শন

> db.caseInsensitiveDemo.find();

আউটপুট:

{ "_id": ObjectId("5c6d7a67f2db199c1278e7ef"), "Name": "John" }
{ "_id": ObjectId("5c6d7ad6f2db199c1278e7f0"), "Name": "JOHN" }

কেস-ইনসেনসিটিভ কোয়েরি

> db.caseInsensitiveDemo.find({ "Name": /^john$/i });

ফলাফল

{ "_id": ObjectId("5c6d7a67f2db199c1278e7ef"), "Name": "John" }
{ "_id": ObjectId("5c6d7ad6f2db199c1278e7f0"), "Name": "JOHN" }

ব্যাখ্যা: রেগেক্স প্যাটার্ন /^john$/i "john", "John", "JOHN", "JoHn" সবকেসে ম্যাচ করবে। ^ এবং $ ব্যবহার না করলে আংশিক ম্যাচও হবে (যেমন "johnny")। সম্পূর্ণ শব্দ ম্যাচের জন্য এনকর ব্যবহার করা ভালো।

বিকল্প পদ্ধতি: $regex অপারেটর

db.caseInsensitiveDemo.find({ "Name": { $regex: "^john$", $options: "i" } });

এই পদ্ধতিও একই ফলাফল দেবে এবং আরও পঠনীয়।

  1. MongoDB-তে শব্দ অনুযায়ী সর্ট করার পদ্ধতি

  2. MongoDB-এ ট্যাগ আপডেট করার পদ্ধতি

  3. MongoDB-তে সাবডকুমেন্টের অ্যারে কুয়েরি

  4. MongoDB-এ _id দিয়ে গ্রুপ করে ডকুমেন্ট কাউন্ট করা