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

MongoDB অ্যাগ্রিগেশন: নেস্টেড ডকুমেন্টের তারিখ অনুযায়ী গ্রুপ করে কাউন্ট করা

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 ব্যবহার করতে হয়
  1. জাভাস্ক্রিপ্টে এশিয়া এবং আমেরিকার ডেট-টাইম Date অবজেক্ট দিয়ে দেখানো

  2. জাভাস্ক্রিপ্টে JSON অবজেক্ট দুই প্রপার্টি দিয়ে গ্রুপ করে কাউন্ট করা

  3. iOS অ্যাপ্লিকেশনে বর্তমান তারিখ এবং সময় দেখানো

  4. পাইথন পান্ডাস - Period অবজেক্ট ফরম্যাট করুন এবং কোয়ার্টার প্রদর্শন করুন