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

MongoDB-এ তারিখ অনুযায়ী গ্রুপ করে নামের তালিকা বের করা

MongoDB-এ তারিখ ফিল্ড অনুযায়ী গ্রুপ করতে অগরিগেশনে $group এবং ডেট অপারেটর ($dayOfMonth, $month, $year) ব্যবহার করুন। একটি কালেকশন তৈরি করুন:

> db.demo657.insertOne({ id: 1, Name: "Chris", DueDate: new ISODate("2020-04-22") });
{ "acknowledged" : true, "insertedId" : ObjectId("5ea064b44deddd72997713d6") }
> db.demo657.insertOne({ id: 1, Name: "John", DueDate: new ISODate("2020-04-22") });
{ "acknowledged" : true, "insertedId" : ObjectId("5ea064b44deddd72997713d7") }
> db.demo657.insertOne({ id: 1, Name: "Chris", DueDate: new ISODate("2020-04-22") });
{ "acknowledged" : true, "insertedId" : ObjectId("5ea064b44deddd72997713d8") }

find() দিয়ে ডকুমেন্ট দেখান:

> db.demo657.find();

আউটপুট:

নির্দিষ্ট তারিখ রেঞ্জে (২১-২২ এপ্রিল ২০২০) গ্রুপ করে নামের তালিকা বের করার কোয়ারি:

> db.demo657.aggregate([
    {$match: {id:1, DueDate: {$gte:new ISODate('2020-04-21'), $lt:new ISODate("2020-04-23")}}},
    {$project: {day: {'$dayOfMonth': '$DueDate'}, month: {'$month':'$DueDate'}, year: {'$year':'$DueDate'}, Name:"$Name" }},
    {$group: {
        _id: {day:'$day',month:'$month',year:'$year'},
        ListOfNames: {$push:{Name:'$Name'}}
    }}
])

আউটপুট:

ব্যাখ্যা: $match তারিখ রেঞ্জ ফিল্টার করে। $project দিয়ে তারিখের দিন, মাস, বছর আলাদা ফিল্ড বানানো হয়েছে। $group এ কম্পাউন্ড _id (দিন, মাস, বছর) দিয়ে গ্রুপ করা হয়েছে এবং $push দিয়ে নামগুলো অ্যারেতে সংগ্রহ করা হয়েছে।

  1. MongoDB-এ _id দিয়ে গ্রুপ করে ডকুমেন্ট কাউন্ট করা

  2. MongoDB-এ _id দিয়ে কালেকশন আইটেম ম্যাচ করা

  3. MongoDB-এ কালেকশন রিনেম করা (renameCollection)

  4. MongoDB-তে createIndex() দিয়ে নেস্টেড ফিল্ডে ইন্ডেক্স তৈরি করা