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

MongoDB-এ অ্যারেতে সাবস্ট্রিং মিলিয়ে ডকুমেন্ট খুঁজে বের করা

MongoDB-এ অ্যারেতে কোনো স্ট্রিং নির্দিষ্ট শব্দের সাবস্ট্রিং (substring) কিনা চেক করতে অ্যাগ্রিগেশন পাইপলাইনে $indexOfBytes, $map, $anyElementTrue ইত্যাদি ব্যবহার করা হয়।

কলেকশন এবং ডকুমেন্ট তৈরি

> db.demo90.insertOne({ "words": ["john", "jace"] });
{ "acknowledged" : true, "insertedId" : ObjectId("5e2c1ada79799acab037af56") }
> db.demo90.insertOne({ "words": ["sam", "adam"] });
{ "acknowledged" : true, "insertedId" : ObjectId("5e2c1adb79799acab037af57") }

সব ডকুমেন্ট দেখানো

>> db.demo90.find();

আউটপুট:

{ "_id" : ObjectId("5e2c1ada79799acab037af56"), "words" : [ "john", "jace" ] }
{ "_id" : ObjectId("5e2c1adb79799acab037af57"), "words" : [ "sam", "adam" ] }

সাবস্ট্রিং মিলিয়ে কোয়ারী

"john" শব্দের সাবস্ট্রিং অ্যারেতে আছে কিনা চেক করা হয়েছে:

> db.demo90.aggregate([
...   { $match: { $expr: { $anyElementTrue: { $map: { input: "$words", as: "j", in: { $ne: [ -1, { $indexOfBytes: [ "john", "$$j" ] } ] } } } } } }
... ]);

ফলাফল

{ "_id" : ObjectId("5e2c1ada79799acab037af56"), "words" : [ "john", "jace" ] }

স্টেপ বাই স্টেপ ব্যাখ্যা:

  1. $map - $words অ্যারের প্রতিটি এলিমেন্ট (%%j) এর জন্য কাজ করে
  2. $indexOfBytes: ["john", "$$j"] - "john" স্ট্রিং-এ %%j সাবস্ট্রিং খুঁজে, পাওয়া গেলে পজিশন (০ বা অধিক), নাও পাওয়া গেলে -১ রিটার্ন করে
  3. $ne: [-1, ...] - ফলাফল -১ নয় কিনা চেক করে (অর্থাৎ পাওয়া গেছে)
  4. $anyElementTrue - অ্যারেতে কমপক্ষে একটি true হলে true রিটার্ন করে
  5. $match with $expr - এক্সপ্রেশন true হলে ডকুমেন্ট রাখে

ফলাফল: প্রথম ডকুমেন্টে "john" এবং "jace" আছে, "john"-এ "john" সাবস্ট্রিং পাওয়া গেলে true। দ্বিতীয় ডকুমেন্টে "sam", "adam" - কোনোটিই "john"-এর সাবস্ট্রিং নয়।

নোট: এটি কেস-সেনসিটিভ। কেস-ইনসেনসিটিভ করতে $toLower বা $regex ব্যবহার করুন। MongoDB 4.2+ এ $function বা $reduce দিয়ে আরও সহজে লেখা যায়।

  1. MongoDB-এ নির্দিষ্ট FirstName এবং LastName সম্বয় ডকুমেন্ট খোঁজা ($and + $in)

  2. MongoDB-তে $elemMatch এবং $and দিয়ে অ্যারে ফিল্ডে একাধিক শর্ত মিলিয়ে ডকুমেন্ট বের করা

  3. MongoDB-তে $regex ব্যবহার করে নির্দিষ্ট স্ট্রিং ধারণকারী ডকুমেন্ট খোঁজা

  4. MongoDB-এ অ্যারে কোয়েরি করে নির্দিষ্ট ভ্যালু ফেচ করা