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

MongoDB-এ শর্তানুসারে একাধিক সাব-ডকুমেন্ট থেকে ফিল্ড বের করা

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

> db.demo671.insertOne({
    "details" : [
        { "id" : "1" },
        { CountryName:"US", "details1" : [ { "id" : "1" }, { "id" : "2" } ] },
        { CountryName:"UK", "details1" : [ { "id" : "2" }, { "id" : "1" } ] },
        { CountryName:"AUS", "details1" : [ { "id" : "1" } ] }
    ]
});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea3e5d004263e90dac943e0") }

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

> db.demo671.find();

আউটপুট:

details.details1.id == "1" শর্ত মেনে যাওয়া সাব-ডকুমেন্টের CountryName বের করার কোয়ারি:

> db.demo671.aggregate([
    {$unwind: '$details'},
    {$match: {'details.details1.id': '1'}},
    {$project: {_id: 0, Country: '$details.CountryName'}}
]).pretty()

আউটপুট:

ব্যাখ্যা: $unwind: '$details' টপ-লেভেল অ্যারে ফ্ল্যাট করে। $match নেস্টেড পথ details.details1.id দিয়ে ফিল্টার করে। $project শুধু CountryName ফিল্ড (রিনেম করে Country) আউটপুটে রাখে। প্রথম এলিমেন্ট ({id: "1"}) में details1 নেই, তাই সেটি ফিল্টার আউট হয়েছে।

  1. MongoDB-তে শর্ত মেলা না এমন রেকর্ড খুঁজে বের করা

  2. MongoDB-এ ডট নোটেশন দিয়ে নির্দিষ্ট ফিল্ড প্রজেকশন করা

  3. MongoDB-তে একাধিক ডকুমেন্ট ফিল্ডে একজ্যাক্ট ম্যাচ কোয়ারি

  4. MongoDB এগ্রিগেশন: একাধিক ফিল্ড দিয়ে কাউন্ট করা