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

MongoDB में null द्वारा समूहित करके डॉक्यूमेंट में औसत मान कैसे गणना करें?

MongoDB एग्रीगेशन में _id: null के साथ सभी डॉक्यूमेंट्स में औसत गणना करना

_id: null के साथ $group स्टेज का उपयोग करके सभी डॉक्यूमेंट्स को एक ही समूह में समूहित करें, फिर $avg के साथ औसत की गणना करें।

सिंटैक्स

db.yourCollectionName.aggregate([
  { $group: { _id: null, "anyFieldName": { $avg: "$yourFieldName" } } }
]);

नमूना डेटा बनाना

> db.caculateTheAverageValueDemo.insertOne({"Population":100});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd68a197924bb85b3f4895f") }
> db.caculateTheAverageValueDemo.insertOne({"Population":500});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd68a1c7924bb85b3f48960") }
> db.caculateTheAverageValueDemo.insertOne({"Population":200});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd68a237924bb85b3f48961") }
> db.caculateTheAverageValueDemo.insertOne({"Population":100});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd68a297924bb85b3f48962") }
> db.caculateTheAverageValueDemo.insertOne({"Population":100});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd68a2e7924bb85b3f48963") }

सभी डॉक्यूमेंट्स देखना

> db.caculateTheAverageValueDemo.find().pretty();

आउटपुट:

{ "_id" : ObjectId("5cd68a197924bb85b3f4895f"), "Population" : 100 }
{ "_id" : ObjectId("5cd68a1c7924bb85b3f48960"), "Population" : 500 }
{ "_id" : ObjectId("5cd68a237924bb85b3f48961"), "Population" : 200 }
{ "_id" : ObjectId("5cd68a297924bb85b3f48962"), "Population" : 100 }
{ "_id" : ObjectId("5cd68a2e7924bb85b3f48963"), "Population" : 100 }

औसत गणना करना

> db.caculateTheAverageValueDemo.aggregate([
  { $group: { _id: null, "AveragePopulation": { $avg: "$Population" } } }
]);

आउटपुट:

{ "_id" : null, "AveragePopulation" : 200 }

व्याख्या

  • _id: null - सभी डॉक्यूमेंट्स को एक ही बकेट में समूहित करता है।
  • $avg: "$Population" - सभी डॉक्यूमेंट्स में Population फील्ड का औसत निकालता है: (100+500+200+100+100)/5 = 200।
  • null मानों को स्वचालित रूप से अनदेखा किया जाता है।

अतिरिक्त सांख्यिकी के साथ विस्तारित उदाहरण

db.collection.aggregate([
  { $group: {
    _id: null,
    avgVal: { $avg: "$field" },
    minVal: { $min: "$field" },
    maxVal: { $max: "$field" },
    sumVal: { $sum: "$field" },
    count: { $sum: 1 }
  }}
]);

मुख्य बिंदु

  • _id: null "समग्र" एग्रीगेशन के लिए मानक पैटर्न है।
  • $avg केवल न्यूमेरिक मानों पर काम करता है; गैर-न्यूमेरिक मानों को अनदेखा करता है।
  • फ़िल्टर किए गए औसत के लिए, $group से पहले $match जोड़ें।
  1. - MongoDB में नेस्टेड दस्तावेज़ वैल्यू कैसे खोजें?

    मान खोजने के लिए MongoDB में $match का उपयोग करें। नमूना डेटा बनाना (एम्बेडेड ऐरे) db.demo648.insertOne( { StudentInformation: [ { Name:John, CountryName:US }, { Name:David, CountryName:AUS }, { Name:Chris, CountryName:US }, { Name:Robert, CountryName:UK } ] } ); सभी दस्तावेज़

  1. - MongoDB डॉक्यूमेंट में केवल एक मान को इंक्रीमेंट कैसे करें?

    MongoDB में केवल एक मान को अपडेट और इंक्रीमेंट करने के लिए update() के साथ $inc का उपयोग करें। आइए एक कलेक्शन बनाते हैं: > db.demo698.insertOne({Score:78}); { acknowledged : true, insertedId : ObjectId(5ea6d8a4551299a9f98c9398) } > db.demo698.insertOne({Score:56}); { acknowledged : true, inse

  1. - MongoDB क्वेरी: नेस्टेड दस्तावेज अपडेट करें

    नेस्टेड दस्तावेज को अपडेट करने के लिए, update() का उपयोग करें और उसके भीतर डॉट नोटेशन का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo607.insertOne({ id:1, Info1: { Name: Chris, Age: 21, Info2: { SubjectName: MongoDB, Ma