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

MongoDB-এ অবজেক্ট ফিল্টার করে নির্দিষ্ট সাবজেক্ট নাম বের করা

অবজেক্ট ফিল্টার করে নির্দিষ্ট ফিল্ড বের করতে প্রজেকশনের সাথে $filter এবং $match ব্যবহার করুন। একটি কালেকশন তৈরি করুন:

> db.demo507.insertOne({
    "Information": [
        {"Name":"John","SubjectName":"MySQL"},
        {"Name":"Bob","SubjectName":"MongoDB"},
        {"Name":"Chris","SubjectName":"MySQL"},
        {"Name":"David","SubjectName":"C++"}
    ]
});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8836d3987b6e0e9d18f577") }

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

> db.demo507.find().pretty();

আউটপুট:

{ "_id" : ObjectId("5e8836d3987b6e0e9d18f577"), "Information" : [ { "Name" : "John", "SubjectName" : "MySQL" }, { "Name" : "Bob", "SubjectName" : "MongoDB" }, { "Name" : "Chris", "SubjectName" : "MySQL" }, { "Name" : "David", "SubjectName" : "C++" } ] }

শুধু "MySQL" সাবজেক্ট 가진 অবজেক্টগুলো ফিল্টার করার কোয়েরি:

> db.demo507.aggregate([
    {$match: {"Information.SubjectName" : "MySQL" } },
    {$project: {
        _id:0,
        Information: {
            $filter: {
                input: '$Information',
                as: 'result',
                cond: {$eq: ['$$result.SubjectName', 'MySQL']}
            }
        }
    }},
    {$project: {Information: { SubjectName:1}}}
]);

আউটপুট:

{ "Information" : [ { "SubjectName" : "MySQL" }, { "SubjectName" : "MySQL" } ] }

ব্যাখ্যা: প্রথমে $match দিয়ে শুধু "MySQL" কন্টেইন করা ডকুমেন্ট সিলেক্ট করা হয়েছে। তারপর $project এবং $filter ব্যবহার করে Information অ্যারেতে শুধু "MySQL" 가진 অবজেক্টগুলো রেখে বাকিগুলো বাদ দেওয়া হয়েছে। চূড়ান্ত প্রজেকশনে শুধু SubjectName ফিল্ড রাখা হয়েছে।

  1. MongoDB-এ $project দিয়ে অ্যারে থেকে নির্দিষ্ট ফিল্ড দেখানো (অন্যান্য বাদ দিয়ে)

  2. MongoDB-এ নির্দিষ্ট সংখ্যা থেকে বড় ফিল্ড ভ্যালু वाले ডকুমেন্ট ফেচ করা

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

  4. MySQL에서 LIKE로 특정 이름(예: Johnson으로 시작) 검색하기