MongoDB में Aggregate और $group से तारीख अनुसार ग्रुपिंग
MongoDB में डुप्लिकेट तारीख रिकॉर्ड गिनने के लिए aggregate() और $group का उपयोग करें। आइए दस्तावेज़ों के साथ एक संग्रह बनाते हैं:
> db.demo160.insertOne({"DueDate":new ISODate()}); { "acknowledged" : true, "insertedId" : ObjectId("5e357525fdf09dd6d0853a04") }
> db.demo160.insertOne({"DueDate":new ISODate("2019-01-11")}); { "acknowledged" : true, "insertedId" : ObjectId("5e357532fdf09dd6d0853a05") }
> db.demo160.insertOne({"DueDate":new ISODate()}); { "acknowledged" : true, "insertedId" : ObjectId("5e357534fdf09dd6d0853a06") }
> db.demo160.insertOne({"DueDate":new ISODate("2019-01-11")}); { "acknowledged" : true, "insertedId" : ObjectId("5e357538fdf09dd6d0853a07") }
> db.demo160.insertOne({"DueDate":new ISODate("2020-04-10")}); { "acknowledged" : true, "insertedId" : ObjectId("5e357542fdf09dd6d0853a08") }
find() से सभी दस्तावेज़ प्रदर्शित करें:
> db.demo160.find();
आउटपुट:
{ "_id" : ObjectId("5e357525fdf09dd6d0853a04"), "DueDate" : ISODate("2020-02-01T12:55:01.983Z") }
{ "_id" : ObjectId("5e357532fdf09dd6d0853a05"), "DueDate" : ISODate("2019-01-11T00:00:00Z") }
{ "_id" : ObjectId("5e357534fdf09dd6d0853a06"), "DueDate" : ISODate("2020-02-01T12:55:16.787Z") }
{ "_id" : ObjectId("5e357538fdf09dd6d0853a07"), "DueDate" : ISODate("2019-01-11T00:00:00Z") }
{ "_id" : ObjectId("5e357542fdf09dd6d0853a08"), "DueDate" : ISODate("2020-04-10T00:00:00Z") }
MongoDB में तारीख अनुसार ग्रुप करने का क्वेरी:
> db.demo160.aggregate([
{ $group: {
_id: {
$add: [
{ $dayOfYear: "$DueDate"},
{ $multiply: [400, {$year: "$DueDate"}] }
]},
Frequency: { $sum: 1 },
d: {$min: "$DueDate"}
}},
{ $sort: {_id: 1} },
{ $limit: 100},
{ $project: { date: "$d", Frequency: 1, _id: 0} }
]);
आउटपुट:
{ "Frequency" : 2, "date" : ISODate("2019-01-11T00:00:00Z") }
{ "Frequency" : 2, "date" : ISODate("2020-02-01T12:55:01.983Z") }
{ "Frequency" : 1, "date" : ISODate("2020-04-10T00:00:00Z") }
व्याख्या: पाइपलाइन तारीख को वर्ष और दिन के संयोजन से ग्रुप करती है, प्रत्येक ग्रुप की गिनती करती है ($sum: 1), न्यूनतम तारीख रखती है, क्रमबद्ध करती है, और अंत में date और Frequency फ़ील्ड प्रोजेक्ट करती है।