MongoDB-এ নেস্টেড অ্যারে ডকুমেন্টের ফিল্ডগুলোর উপর এগ্রিগেশন (যেমন মিন, ম্যাক্স, এভারেজ) করতে এগ্রিগেশন পাইপলাইনে $min, $max ইত্যাদি অপারেটর ব্যবহার করুন।
উদাহরণ
নেস্টেড অ্যারে সহ ডকুমেন্ট তৈরি করুন:
> db.aggregateArrayDemo.insertOne({
"_id": 100,
"UserDetails": [
{ "UserName": "John", "UserLoginYear": 2010 },
{ "UserName": "Carol", "UserLoginYear": 2019 }
]
});
{ "acknowledged" : true, "insertedId" : 100 }
ডকুমেন্টটি দেখুন:
> db.aggregateArrayDemo.find().pretty();
আউটপুট:
{ "_id" : 100, "UserDetails" : [ { "UserName" : "John", "UserLoginYear" : 2010 }, { "UserName" : "Carol", "UserLoginYear" : 2019 } ] }
UserLoginYear এর মিনিমাম এবং ম্যাক্সিমাম বের করা
> db.aggregateArrayDemo.aggregate([
{ $match: { _id: 100 } },
{ $project: {
Minimum: { $min: "$UserDetails.UserLoginYear" },
Maximum: { $max: "$UserDetails.UserLoginYear" }
} }
]);
আউটপুট:
{ "_id" : 100, "Minimum" : 2010, "Maximum" : 2019 }
ব্যাখ্যা:
$match— নির্দিষ্ট ডকুমেন্ট ফিল্টার (ঐচ্ছিক)।$UserDetails.UserLoginYear— অ্যারেতে সব অবজেক্টেরUserLoginYearফিল্ড বের করে অ্যারে বানায়:[2010, 2019]।$min,$max— সেই অ্যারেতে থেকে ন্যূনতম ও সর্বোচ্চ মান বের করে।
অন্যান্য এগ্রিগেশন অপারেটর: $avg, $sum, $stdDevPop, $push, $addToSet ইত্যাদি।
নোট: যদি অ্যারে খালি হয়, $min/$max null রিটার্ন করে।