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

MongoDB-এ অ্যারে থেকে নির্দিষ্ট ফিল্ড প্রজেক্ট করার পদ্ধতি

MongoDB-এ অ্যারে অফ অবজেক্টস থেকে নির্দিষ্ট ফিল্ড (যেমন ২য় এলিমেন্টের কান্ট্রি নাম) বের করতে এগ্রিগেশন পাইপলাইনে $project এবং $arrayElemAt অপারেটর ব্যবহার করুন।

উদাহরণ

অ্যারে অফ অবজেক্টস সহ ডকুমেন্ট তৈরি করুন:

> db.returnSpecificFieldDemo.insertOne({
    "StudentId": 1,
    "StudentDetails": [
        { "StudentName": "Larry", "StudentAge": 21, "StudentCountryName": "US" },
        { "StudentName": "Chris", "StudentAge": 23, "StudentCountryName": "AUS" }
    ]
});
{ "acknowledged" : true, "insertedId" : ObjectId("5ce23d3236e8b255a5eee943") }

ডকুমেন্টটি দেখুন:

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

আউটপুট:

{ "_id" : ObjectId("5ce23d3236e8b255a5eee943"), "StudentId" : 1, "StudentDetails" : [ { "StudentName" : "Larry", "StudentAge" : 21, "StudentCountryName" : "US" }, { "StudentName" : "Chris", "StudentAge" : 23, "StudentCountryName" : "AUS" } ] }

২য় এলিমেন্টের (ইনডেক্স ১) StudentCountryName বের করা

> db.returnSpecificFieldDemo.aggregate([
    { $project: {
        _id: 0,
        StudentId: "$StudentId",
        StudentCountryName: { $arrayElemAt: [ "$StudentDetails.StudentCountryName", 1 ] }
    } }
]);

আউটপুট:

{ "StudentId" : 1, "StudentCountryName" : "AUS" }

ব্যাখ্যা:

  • $StudentDetails.StudentCountryName — অ্যারেতে সব অবজেক্টের StudentCountryName ফিল্ডগুলো বের করে একটি অ্যারে বানায়: ["US", "AUS"]।
  • $arrayElemAt: [ ..., 1 ] — সেই অ্যারেতে ১ নম্বর ইনডেক্স (২য় এলিমেন্ট) বের করে: "AUS"।
  • _id: 0 — _id বাদ দেওয়া হয়েছে।

অন্য उपयोगী অপারেটর:

  • $first — প্রথম এলিমেন্ট (অ্যারে সরাসরি না হলে $arrayElemAt সাথে ০)।
  • $last — শেষ এলিমেন্ট।
  • $slice — রেঞ্জ বের করতে।
  1. MongoDB-তে এম্বেডেড অ্যারে থেকে নির্দিষ্ট এলিমেন্ট পাওয়া

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

  3. MongoDB-তে $unset ব্যবহার করে পুরো অ্যারে ফিল্ড মুছে ফেলা

  4. MongoDB-এ অ্যারে কোয়েরি করে নির্দিষ্ট ভ্যালু ফেচ করা