কম্পিউটার

কিভাবে অবজেক্টে কিছু ক্ষেত্র ফিল্টার করবেন এবং MongoDB-তে একটি নির্দিষ্ট বিষয়ের নামের মান আনবেন?


ফিল্টার এবং আনতে, 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() পদ্ধতি -

এর সাহায্যে একটি সংগ্রহ থেকে সমস্ত নথি প্রদর্শন করুন
> db.demo507.find().pretty();

এটি নিম্নলিখিত আউটপুট −

তৈরি করবে
{
   "_id" : ObjectId("5e8836d3987b6e0e9d18f577"),
   "Information" : [
      {
         "Name" : "John",
         "SubjectName" : "MySQL"
      },
      {
         "Name" : "Bob",
         "SubjectName" : "MongoDB"
      },
      {
         "Name" : "Chris",
         "SubjectName" : "MySQL"
      },
      {
         "Name" : "David",
         "SubjectName" : "C++"
      }
   ]
}

অবজেক্ট-

-এ কিছু ক্ষেত্র ফিল্টার করার জন্য নিচের প্রশ্নটি রয়েছে
> 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" } ] }

  1. MongoDB তে $project ব্যবহার করে অ্যারেতে একটি নির্দিষ্ট ক্ষেত্র কীভাবে প্রদর্শন করবেন এবং অন্যান্য ক্ষেত্রগুলিকে উপেক্ষা করবেন?

  2. একটি নির্দিষ্ট সংখ্যার চেয়ে বেশি ক্ষেত্রের মানের সাথে MongoDB নথিগুলি মেলে এবং সেগুলি আনবেন?

  3. একটি নির্দিষ্ট মান আনার জন্য MongoDB-এ একটি অ্যারে জিজ্ঞাসা করুন

  4. MySQL-এ একটি নির্দিষ্ট কলাম মান (নাম) আনুন