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

MongoDB-এ নির্দিষ্ট সাব-ডকুমেন্ট সিলেক্ট করা

MongoDB-এ প্রজেকশন ব্যবহার করে নির্দিষ্ট সাব-ডকুমেন্ট রিটার্ন করা

MongoDB-এ অ্যারেতে থাকা নির্দিষ্ট সাব-ডকুমেন্ট (যেমন Name="Sam") শুধু সেটি রিটার্ন করতে find()-এর দ্বিতীয় আর্গুমেন্টে প্রজেকশন অবজেক্ট ব্যবহার করা হয়, যেখানে $ (পজিশনাল অপারেটর) ম্যাচ করা এলিমেন্টকে নির্দেশ করে।

উদাহরণ: ডিটেইলস অ্যারে সহ ডকুমেন্ট তৈরি

> db.demo37.insertOne({"Details":[{"Name":"Chris","Age":21},{"Name":"David","Age":23}]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e176635cfb11e5c34d898d7") }
> db.demo37.insertOne({"Details":[{"Name":"Sam","Age":23},{"Name":"Robert","Age":25}]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e17664acfb11e5c34d898d8") }

সমস্ত ডকুমেন্ট

> db.demo37.find();
{ "_id" : ObjectId("5e176635cfb11e5c34d898d7"), "Details" : [ { "Name" : "Chris", "Age" : 21 }, { "Name" : "David", "Age" : 23 } ] }
{ "_id" : ObjectId("5e17664acfb11e5c34d898d8"), "Details" : [ { "Name" : "Sam", "Age" : 23 }, { "Name" : "Robert", "Age" : 25 } ] }

নির্দিষ্ট সাব-ডকুমেন্ট (Name="Sam") সিলেক্ট করা

> db.demo37.find({'Details.Name' : 'Sam'},{_id: 0, 'Details.$.Name': 1});

ফলাফল

{ "Details" : [ { "Name" : "Sam", "Age" : 23 } ] }

ব্যাখ্যা

  • {'Details.Name' : 'Sam'}: কুয়েরি - Details অ্যারেতে Name="Sam" থাকা ডকুমেন্ট খুঁজে।
  • {_id: 0, 'Details.$.Name': 1}: প্রজেকশন - _id বাদ দিয়ে, ম্যাচ করা এলিমেন্টের ($) শুধু Name ফিল্ড দেখাবে।
  • ফলাফলে Age-ও আসে কারণ Details.$ পুরো এলিমেন্ট রিটার্ন করে; শুধু Name চাইলে 'Details.$.Name': 1 দিয়ে সম্ভব (যদি শুধু Name থাকে তবে পুরো অবজেক্ট আসে) - MongoDB-এ প্রজেকশনে নেস্টেড ফিল্ড এক্সক্লুড করা জটিল।

সীমাবদ্ধতা

  • $ শুধু প্রথম ম্যাচ করা এলিমেন্ট রিটার্ন করে।
  • একাধিক ম্যাচ করলে সবগুলো পেতে $elemMatch প্রজেকশনে ব্যবহার করুন।
  • অগ্রেশন পাইপলাইন ($filter, $arrayElemAt) আরও শক্তিশালী।
  1. MongoDB-তে $in অপারেটর ব্যবহার করে নির্দিষ্ট একাধিক ডকুমেন্ট বের করা

  2. MongoDB-এ নির্দিষ্ট ফিল্ড না থাকা ডকুমেন্ট খুঁজে বের করা

  3. MySQL-এ FIND_IN_SET() ব্যবহার করে নির্দিষ্ট সারি নির্বাচন করা

  4. MySQL-এ সকল ডুপ্লিকেট রেকর্ড খুঁজে বের করার পদ্ধতি (সাবকোয়েরি ব্যবহার)