आप MongoDB में डेट्स द्वारा ग्रुप करने के लिए एग्रीगेशन फ्रेमवर्क का उपयोग कर सकते हैं। आइए पहले कुछ डॉक्यूमेंट्स के साथ एक कलेक्शन बनाएं। डॉक्यूमेंट्स के साथ कलेक्शन बनाने की क्वेरी इस प्रकार है:
> db.groupByDateDemo.insertOne({"UserLoginDateTime":new ISODate()});
{ "acknowledged" : true, "insertedId" : ObjectId("5c6ee4df6fd07954a4890695") }
> db.groupByDateDemo.insertOne({"UserLoginDateTime":new ISODate("2019-01-31 15:20:09.234Z")});
{ "acknowledged" : true, "insertedId" : ObjectId("5c6ee51c6fd07954a4890696") }
> db.groupByDateDemo.insertOne({"UserLoginDateTime":new ISODate("2017-04-21 16:12:13.240Z")});
{ "acknowledged" : true, "insertedId" : ObjectId("5c6ee5336fd07954a4890697") }
> db.groupByDateDemo.insertOne({"UserLoginDateTime":new ISODate("2016-05-25 19:11:21.130Z")});
{ "acknowledged" : true, "insertedId" : ObjectId("5c6ee54b6fd07954a4890698") }
> db.groupByDateDemo.insertOne({"UserLoginDateTime":new ISODate("2016-05-25 19:11:21.130Z")});
{ "acknowledged" : true, "insertedId" : ObjectId("5c6ee8de6fd07954a4890699") }
> db.groupByDateDemo.insertOne({"UserLoginDateTime":new ISODate()});
{ "acknowledged" : true, "insertedId" : ObjectId("5c6ee8e76fd07954a489069a") }
find() मेथड की मदद से कलेक्शन से सभी डॉक्यूमेंट्स प्रदर्शित करें। क्वेरी इस प्रकार है:
> db.groupByDateDemo.find().pretty();
निम्नलिखित आउटपुट है:
यहां MongoDB में डेट्स द्वारा ग्रुप करने की क्वेरी है:
> db.groupByDateDemo.aggregate([ { $group: { _id: { $add: [ { $dayOfYear: "$UserLoginDateTime"}, { $multiply: [400, {$year: "$UserLoginDateTime"}]} ]}, NumberOfTimes: { $sum: 1 }, f: {$min: "$UserLoginDateTime"} }}, { $sort: {_id: 1} }, { $limit: 10 }, { $project: { date: "$f", NumberOfTimes: 1, _id: 0} } ]);निम्नलिखित आउटपुट है: