Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MongoDB

MongoDB में तारीख के अनुसार GroupBy करके डुप्लिकेट तारीख रिकॉर्ड गिनना

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 फ़ील्ड प्रोजेक्ट करती है।

  1. - MongoDB क्वेरी: डुप्लिकेट दस्तावेज़ों को ग्रुप करना

    डुप्लिकेट दस्तावेज़ों को ग्रुप करने के लिए MongoDB aggregate() का उपयोग करें। नमूना डेटा बनाना (डुप्लिकेट नामों के साथ) db.demo501.insertOne({Name:David}); सभी दस्तावेज़ देखना db.demo501.find(); { Name : Chris }, { Name : Bob }, { Name : Chris }, { Name : John }, { Name : Chris }, { Name : John

  1. - MongoDB aggregate से डुप्लिकेट नामों के संबंधित फील्ड मानों की गिनती प्राप्त करें

    उदाहरण देखते हैं और डॉक्यूमेंट्स के साथ एक कलेक्शन बनाते हैं: > db.demo558.insertOne( ... { _id : 100, CountryCode:101, details: [ ... { Name:Chris, Subject:MySQL }, ... { Name:Chris, Subject:MongoDB }, ... { Name:Chris, Subject:Java }, ... { Name:Bob, Subject:Python }, ... { Name:Bob, Subject:J

  1. - MongoDB में जन्म तिथि रिकॉर्ड को उम्र में कैसे बदलें?

    आइए एक कलेक्शन बनाते हैं: > db.demo754.insertOne({DateOfBirth:new Date(2000-05-03)}); { acknowledged : true, insertedId : ObjectId(5eae9b2da930c785c834e56f) } > db.demo754.insertOne({DateOfBirth:new Date(2010-01-21)}); { acknowledged : true, insertedId : ObjectId(5eae9b34a930c785c834e570) } &