কম্পিউটার

MongoDB তে অবজেক্টের অ্যারে কীভাবে অনুসন্ধান করবেন?


MongoDB তে অবজেক্টের অ্যারে অনুসন্ধান করতে, আপনি $elemMatch অপারেটর ব্যবহার করতে পারেন। এই অপারেটর আমাদের একটি অ্যারে অবজেক্ট থেকে একাধিক উপাদান অনুসন্ধান করার অনুমতি দেয়৷

উপরের ধারণাটি বুঝতে, আসুন ডকুমেন্টের সাথে একটি সংগ্রহ তৈরি করি। একটি নথির সাথে একটি সংগ্রহ তৈরি করার প্রশ্নটি নিম্নরূপ -

> db.searchArrayDemo.insertOne({"EmployeeFirstName":"Adam","EmployeeLastName":"Smith","EmployeeDateOfBirth":new ISODate("1992-01-31 13:45:10"),
   ... "EmployeeSkills":["Spring and Hibernate Framework","Machine Learning"],
   ... "EmployeeDetails":[
      ... {
         ... "EmployeePerformanceArea":"Java",
         ... "Year":2001
      ... },
      ... {
      ... "EmployeePerformanceArea":"Python",
         ... "Year":2005
      ... }
   ... ]
... }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c77b3812386c62d05142a6a")
}
> db.searchArrayDemo.insertOne({"EmployeeFirstName":"Carol","EmployeeLastName":"Taylor",
   "EmployeeDateOfBirth":new ISODate("1993-04-21 11:10:20"),
   "EmployeeSkills":["C++","Cloud Computing"], "EmployeeDetails":[ {
   "EmployeePerformanceArea":"C++", "Year":1998 }, { "EmployeePerformanceArea":"C++
   Game Developer", "Year":2007 } ] } );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c77b58f2386c62d05142a6b")
}

Find() পদ্ধতির সাহায্যে একটি সংগ্রহ থেকে সমস্ত নথি প্রদর্শন করুন। প্রশ্নটি নিম্নরূপ -

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

নিচের আউটপুট −

{
   "_id" : ObjectId("5c77b3812386c62d05142a6a"),
   "EmployeeFirstName" : "Adam",
   "EmployeeLastName" : "Smith",
   "EmployeeDateOfBirth" : ISODate("1992-01-31T13:45:10Z"),
   "EmployeeSkills" : [
      "Spring and Hibernate Framework",
      "Machine Learning"
   ],
   "EmployeeDetails" : [
      {
         "EmployeePerformanceArea" : "Java",
         "Year" : 2001
      },
      {
         "EmployeePerformanceArea" : "Python",
         "Year" : 2005
      }
   ]
}
{
   "_id" : ObjectId("5c77b58f2386c62d05142a6b"),
   "EmployeeFirstName" : "Carol",
   "EmployeeLastName" : "Taylor",
   "EmployeeDateOfBirth" : ISODate("1993-04-21T11:10:20Z"),
   "EmployeeSkills" : [
      "C++",
      "Cloud Computing"
   ],
   "EmployeeDetails" : [
      {
         "EmployeePerformanceArea" : "C++",
         "Year" : 1998
      },
      {
         "EmployeePerformanceArea" : "C++ Game Developer",
         "Year" : 2007
      }
   ]
}

MongoDB-এ বস্তুর একটি অ্যারে অনুসন্ধান করার জন্য এখানে ক্যোয়ারী রয়েছে৷

কেস 1

যখন প্রদত্ত উপাদান পাওয়া যায়।

প্রশ্নটি নিম্নরূপ -

> db.searchArrayDemo.find({EmployeeDetails:{$elemMatch:{EmployeePerformanceArea : "C++", Year : 1998}}}).pretty();

নিচের আউটপুট −

{
   "_id" : ObjectId("5c77b58f2386c62d05142a6b"),
   "EmployeeFirstName" : "Carol",
   "EmployeeLastName" : "Taylor",
   "EmployeeDateOfBirth" : ISODate("1993-04-21T11:10:20Z"),
   "EmployeeSkills" : [
      "C++",
      "Cloud Computing"
   ],
   "EmployeeDetails" : [
      {
         "EmployeePerformanceArea" : "C++",
         "Year" : 1998
      },
      {
         "EmployeePerformanceArea" : "C++ Game Developer",
         "Year" : 2007
      }
   ]
}

কেস 2

যখন প্রদত্ত উপাদান পাওয়া যায় না।

প্রশ্নটি নিম্নরূপ -

> db.searchArrayDemo.find({EmployeeDetails:{$elemMatch:{EmployeePerformanceArea : "C", Year : 1996}}}).pretty();

প্রদত্ত উপাদানটি পাওয়া না গেলে এখানে আপনি কিছুই পাবেন না


  1. মঙ্গোডিবিতে একটি অ্যারে কীভাবে পুশ করবেন?

  2. MongoDB-তে অ্যারেতে কীভাবে যুক্ত করবেন?

  3. MongoDB তে একটি বস্তুর ভিতরে থাকা একটি অ্যারেতে একটি আইটেম কীভাবে সন্নিবেশ করা যায়?

  4. MongoDB তে একটি অবজেক্ট অ্যারে থেকে আইটেমগুলি কীভাবে পাবেন?