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

MongoDB-এ অ্যারের শেষ এলিমেন্টে কোয়ারি চালানো

MongoDB-এ অ্যারের শেষ (last) এলিমেন্টে কোয়ারি চালাতে অ্যাগ্রিগেশন পাইপলাইনে $arrayElemAt অপারেটর ব্যবহার করা হয়। নেতিবাচক إندেক্স (-1) দিয়ে শেষ এলিমেন্ট অ্যাক্সেস করা যায়।

কলেকশন এবং ডকুমেন্ট তৈরি

> db.demo103.insertOne({
...   "Details" : [
...     { "StudentId" : 101, "Details" : "MongoDB" },
...     { "StudentId" : 102, "Details" : "MySQL" },
...     { "StudentId" : 103, "Details" : "Java" }
...   ],
...   "Details1" : [ { "StudentId" : 104, "Number" : 3 } ]
... });
{ "acknowledged" : true, "insertedId" : ObjectId("5e2ed2dd9fd5fd66da21446e") }

সব ডকুমেন্ট দেখানো

> db.demo103.find();

আউটপুট:

{ "_id" : ObjectId("5e2ed2dd9fd5fd66da21446e"), "Details" : [ { "StudentId" : 101, "Details" : "MongoDB" }, { "StudentId" : 102, "Details" : "MySQL" }, { "StudentId" : 103, "Details" : "Java" } ], "Details1" : [ { "StudentId" : 104, "Number" : 3 } ] }

অ্যারের শেষ এলিমেন্টে কোয়ারী

> db.demo103.aggregate([
...   { $project: {
...     Details1: 1,
...     Details: { $arrayElemAt: ["$Details", -1] }
...   }},
...   { $match: { "Details.StudentId": 103 } }
... ]);

ফলাফল

{ "_id" : ObjectId("5e2ed2dd9fd5fd66da21446e"), "Details1" : [ { "StudentId" : 104, "Number" : 3 } ], "Details" : { "StudentId" : 103, "Details" : "Java" } }

ব্যাখ্যা:

  • $arrayElemAt: ["$Details", -1] - Details অ্যারের শেষ এলিমেন্ট (ইন্ডেক্স -১) বের করে
  • $project - আউটপুট স্ট্রাকচার তৈরি: Details1 রাখা এবং Details теперь অবজেক্ট (অ্যারে নয়)
  • $match - শেষ এলিমেন্টের StudentId: 103 ফিল্টার

অন্যান্য=arrayElemAt উদাহরণ:

  • {$arrayElemAt: ["$array", 0]} - প্রথম এলিমেন্ট
  • {$arrayElemAt: ["$array", 2]} - তৃতীয় এলিমেন্ট (০-ভিত্তিক)
  • {$arrayElemAt: ["$array", -2]} - শেষ থেকে দ্বিতীয় এলিমেন্ট

বিকল্প পদ্ধতি (MongoDB 4.4+): $last অ্যাকুমুলেটর ব্যবহার করে গ্রুপিংয়ের সময় শেষ এলিমেন্ট পাওয়া যায়:

db.demo103.aggregate([
  { $project: { Details1: 1, lastDetail: { $last: "$Details" } } },
  { $match: { "lastDetail.StudentId": 103 } }
])
  1. MongoDB-তে নির্দিষ্ট কী দিয়ে অ্যারেতে অবজেক্ট আপডেট করা

  2. MongoDB-এ অ্যারে অবজেক্টের নির্দিষ্ট ইনডেক্স আপডেট করা

  3. MongoDB-তে সাবডকুমেন্টের অ্যারে কুয়েরি

  4. MongoDB-এ এমবেডেড ডকুমেন্টের অ্যারে ফিল্টার করা (৩ লেভেল)