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")ও একই ফলাফল দেবে, কিন্তু এগ্রিগেশন বেশি নমনীয়।