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

MongoDB-এ অগরিগেশন এবং $unwind ব্যবহার করে সাব-ডকুমেন্ট ফিল্টার করা

নেস্টেড অ্যারেতে সাব-ডকুমেন্ট ফিল্টার করতে অগরিগেশনে $unwind এবং $match ব্যবহার করুন। একটি কালেকশন তৈরি করুন:

> db.demo662.insertOne({
    "details":[
        { Name:"Chris", Marks:35 },
        { Name:"Bob", Marks:45 },
        { Name:"David", Marks:30 }
    ]
});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea1b2be24113ea5458c7d04") }

find() দিয়ে ডকুমেন্ট দেখান:

> db.demo662.find();

আউটপুট:

Marks > 40 শর্ত মেনে যাওয়া সাব-ডকুমেন্টগুলো ফিল্টার করার কোয়ারি:

> db.demo662.aggregate({$unwind:"$details"},{$match:{"details.Marks":{$gt:40}}})

আউটপুট:

ব্যাখ্যা: $unwind অ্যারেতে প্রতিটি সাব-ডকুমেন্টকে আলাদা ডকুমেন্ট বানায়। তারপর $match শর্ত অনুযায়ী ফিল্টার করে। রেজাল্টে details আর অ্যারে নয়, বরং সিংগল অবজেক্ট। মূল ডকুমেন্ট স্ট্রাকচার ফিরাতে চাইলে $group এবং $push ব্যবহার করুন।

  1. MongoDB-এ একাধিক ডকুমেন্ট মার্জ করার পদ্ধতি

  2. MongoDB-এ অ্যারে অনুযায়ী ডকুমেন্ট ফিল্টার করা

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

  4. MongoDB-তে সাব-ডকুমেন্ট দিয়ে সাব-ডকুমেন্ট ফিল্টার করা (aggregate + $unwind)