रिकॉर्ड किए गए दस्तावेज़ों की औसत दैनिक औसत गणना प्राप्त करने के लिए, कुल () का उपयोग करें। उसके भीतर, $project और $group का उपयोग करें।
आइए दस्तावेजों के साथ एक संग्रह बनाएं -
उदाहरण
> db.demo451.insertOne({ ... DueDate:new ISODate("2020-03-15T10:50:35.000Z"), ... Value: 10 ... } ... ); { "acknowledged" : true, "insertedId" : ObjectId("5e7b5c5d71f552a0ebb0a6e9") } > db.demo451.insertOne({ ... DueDate:new ISODate("2020-03-14T10:50:35.000Z"), ... Value: 10 ... } ... ); { "acknowledged" : true, "insertedId" : ObjectId("5e7b5c5d71f552a0ebb0a6ea") } > db.demo451.insertOne({ ... DueDate:new ISODate("2020-03-13T10:50:35.000Z"), ... Value: 10 ... } ... ); { "acknowledged" : true, "insertedId" : ObjectId("5e7b5c5d71f552a0ebb0a6eb") }
संग्रह से सभी दस्तावेज़ों को खोजने () विधि की सहायता से प्रदर्शित करें -
> db.demo451.find();
यह निम्नलिखित आउटपुट उत्पन्न करेगा -
{ "_id" : ObjectId("5e7b5c5d71f552a0ebb0a6e9"), "DueDate" : ISODate("2020-03- 15T10:50:35Z"), "Value" : 10 } { "_id" : ObjectId("5e7b5c5d71f552a0ebb0a6ea"), "DueDate" : ISODate("2020-03- 14T10:50:35Z"), "Value" : 10 } { "_id" : ObjectId("5e7b5c5d71f552a0ebb0a6eb"), "DueDate" : ISODate("2020-03- 13T10:50:35Z"), "Value" : 10 }
संग्रह में रिकॉर्ड किए गए दस्तावेज़ों की औसत दैनिक औसत गणना प्राप्त करने के लिए क्वेरी निम्नलिखित है -
> db.demo451.aggregate({ ... $match: { ... DueDate: { ... $lt: new ISODate() ... } ... } ... }, { ... $group: { ... _id: null, ... olderDate: { ... $min: "$DueDate" ... }, ... sumValue: { ... $sum: "$Value" ... } ... } ... }, { ... $project: { ... _id: 0, ... averageValue: { ... $divide: ["$sumValue", { ... $divide: [{ ... $subtract: [new ISODate(), "$olderDate"] ... }, 1000 * 60 * 60 * 24] ... }] ... } ... } ... })
यह निम्नलिखित आउटपुट उत्पन्न करेगा -
{ "averageValue" : 2.475558456547562 }