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 = অ্যারে লেথ)।