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

MongoDB-এ রিটার্ন ফরম্যাট নির্দিষ্ট করে মানগুলো অ্যারে আকারে কিভাবে পাবেন?

MongoDB-এ একাধিক ডকুমেন্টের নির্দিষ্ট ফিল্ডের মানগুলো একত্রিত করে একটি অ্যারে আকারে পেতে এগ্রিগেশন পাইপলাইন ($group, $addToSet, $project) ব্যবহার করুন।

উদাহরণ

সাম্প্রতিক ডকুমেন্ট তৈরি করুন:

> db.specifyReturnFormatDemo.insertOne({"Subject":"MongoDB"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cefd364ef71edecf6a1f6c0") }

> db.specifyReturnFormatDemo.insertOne({"Subject":"MySQL"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cefd369ef71edecf6a1f6c1") }

> db.specifyReturnFormatDemo.insertOne({"Subject":"SQL Server"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cefd36fef71edecf6a1f6c2") }

সকল ডকুমেন্ট দেখুন:

> db.specifyReturnFormatDemo.find();

আউটপুট:

{ "_id" : ObjectId("5cefd364ef71edecf6a1f6c0"), "Subject" : "MongoDB" }
{ "_id" : ObjectId("5cefd369ef71edecf6a1f6c1"), "Subject" : "MySQL" }
{ "_id" : ObjectId("5cefd36fef71edecf6a1f6c2"), "Subject" : "SQL Server" }

সব Subject মান ইউনিক অ্যারে আকারে বের করা

> db.specifyReturnFormatDemo.aggregate([
    {
        "$group": {
            "_id": 0,
            "Subject": { "$addToSet": "$Subject" }
        }
    },
    {
        "$project": { "_id": 0, "Subject": 1 }
    }
]);

আউটপুট:

{ "Subject" : [ "SQL Server", "MySQL", "MongoDB" ] }

ব্যাখ্যা:

  • $group: {_id: 0} — সব ডকুমেন্ট একই গ্রুপে ভাগ করা হয়েছে।
  • $addToSet: "$Subject" — ইউনিক মানগুলো একটি সেটে (অ্যারে) জমা করা হয়েছে। ডুপ্লিকেট হলে একবারই থাকবে।
  • $project — আউটপুট ফরম্যাট সমান করার জন্য _id বাদ দেওয়া হয়েছে।

বিকল্প: distinct("Subject")ও একই ফলাফল দেবে, কিন্তু এগ্রিগেশন বেশি নমনীয়।

  1. MongoDB-এ $or অপারেটর ও pretty() দিয়ে একাধিক শর্তে কোয়ারি

  2. MongoDB-এ distinct() দিয়ে নেস্টেড ফোন নাম্বার অ্যারে আনা

  3. MongoDB-এ অ্যারে মান সংরক্ষণ করা (Store Array Values)

  4. MongoDB-এ অ্যারেতে ডISTINCT মানের লেন্থ (দৈর্ঘ্য) বের করা