MongoDB-তে নেস্টেড অ্যারে বা অবজেক্টের ভিতরের তারিখ ফিল্ড অনুযায়ী গ্রুপ করে প্রতিটি তারিখের ঘটনার সংখ্যা বের করতে $unwind এবং $group ব্যবহার করা হয়।
উদাহরণ: শিপিং ডিউ ডেট সহ ডকুমেন্ট
> db.demo717.insertOne({
"shippingdetails": [
{ duedate: "2020-04-29 22:33:04" },
{ duedate: "2020-03-29 22:33:04" },
{ duedate: "2020-04-29 22:33:04" }, // ডুপ্লিকেট ডেট
{ duedate: "2020-01-29 22:33:04" }
]
});
অ্যাগ্রিগেশন পাইপলাইন
> db.demo717.aggregate([
{ $unwind: "$shippingdetails" },
{ $group: {
_id: "$shippingdetails.duedate",
count: { $sum: 1 }
}}
]);
আউটপুট:
{ "_id" : "2020-01-29 22:33:04", "count" : 1 }
{ "_id" : "2020-03-29 22:33:04", "count" : 1 }
{ "_id" : "2020-04-29 22:33:04", "count" : 2 }
ব্যাখ্যা:
$unwind-shippingdetailsঅ্যারে ভাঙে প্রতিটি ডিউডেটকে আলাদা ডকুমেন্ট বানায়$group-duedateঅনুযায়ী গ্রুপ করে$sum: 1দিয়ে গণনা করে- স্ট্রিং ডেট होने कारण সেটি গ্রুপিং-এ কাজ করল; ডেট অবজেক্ট থাকলে ডেট পার্ট বের করতে
$dateToStringব্যবহার করতে হয়