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

MongoDB-তে অ্যারে ফিল্ডে এলিমেন্টের ইনডেক্স বের করার পদ্ধতি


MongoDB-তে $indexOfArray অপারেটর ব্যবহার করে অ্যারে ফিল্ডে এলিমেন্টের ইনডেক্স বের করা

MongoDB ৩.৪+ ভার্সনে অ্যারে ফিল্ডে নির্দিষ্ট এলিমেন্টের ইনডেক্স (অবস্থান) বের করতে অগ리게শন ফ্রেমওয়ার্কের $indexOfArray অপারেটর ব্যবহার করা হয়।

ধাপ ১: ডকুমেন্টসহ কালেকশন তৈরি করুন

> db.getIndexDemo.insertOne({"InstructorName":"Chris","InstructorSubject":["MongoDB","MySQL","Java","C++"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5cbd5251de8cc557214c0df8") }

ধাপ ২: সব ডকুমেন্ট প্রদর্শন করুন

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

আউটপুট:

{
  "_id" : ObjectId("5cbd5251de8cc557214c0df8"),
  "InstructorName" : "Chris",
  "InstructorSubject" : [
    "MongoDB",
    "MySQL",
    "Java",
    "C++"
  ]
}

ধাপ ৩: "MongoDB" এলিমেন্টের ইনডেক্স বের করুন

> db.getIndexDemo.aggregate([
  { "$project": { "matchedIndex": { "$indexOfArray": [ "$InstructorSubject", "MongoDB" ] } } }
]);

ফলাফল:

{
  "_id" : ObjectId("5cbd5251de8cc557214c0df8"),
  "matchedIndex" : 0
}

ধাপ ৪: "C++" এলিমেন্টের ইনডেক্স বের করুন

> db.getIndexDemo.aggregate([
  { "$project": { "matchedIndex": { "$indexOfArray": [ "$InstructorSubject", "C++" ] } } }
]);

ফলাফল:

{
  "_id" : ObjectId("5cbd5251de8cc557214c0df8"),
  "matchedIndex" : 3
}

ব্যাখ্যা:

  • $indexOfArray সিন্ট্যাক্স: { $indexOfArray: [ , , , ] }
  • এখানে ["$InstructorSubject", "MongoDB"] - অ্যারে এবং সার্চ ভ্যালু দেওয়া হয়েছে
  • ইনডেক্স ০-ভিত্তিক (০, ১, ২, ৩...)
  • যদি এলিমেন্ট না পাওয়া যায়, তবে -1 রিটার্ন করে
  • অপশনাল start_index এবং end_index দিয়ে সার্চ রেঞ্জ সীমাবদ্ধ করা যায়

নোট: অধিকাংশ প্রোগ্রামিং ল্যাঙ্গুয়েজের মতই MongoDB-তে অ্যারে ইনডেক্স ০ থেকে শুরু হয়। প্রথম এলিমেন্টের ইনডেক্স ০, শেষ এলিমেন্টের ইনডেক্স n-1 (এখানে n = অ্যারে লেথ)।

  1. MongoDB-এ অ্যারে থেকে এলিমেন্ট মুছে ফেলা ($pull অপারেটর)

  2. MongoDB-তে অ্যাগ্রিগেশন দিয়ে অ্যারে এলিমেন্টের গড় (Average) বের করা ($avg)

  3. MongoDB ডকুমেন্টের নির্দিষ্ট ফিল্ড থেকে অ্যারে এলিমেন্ট কাউন্ট করা

  4. অ্যারে থেকে নির্দিষ্ট ইনডেক্স রেঞ্জ [L-R] এর এলিমেন্ট মুছে ফেলা C++-এ