MongoDB में -Infinity मान के साथ $avg का व्यवहार
इसके लिए aggregate() का उपयोग करें। आइए पहले -infinity मान वाले दस्तावेज़ों के साथ एक संग्रह बनाते हैं:
> db.demo5.insertOne({ "_id" : 100, "seq" : 10, "Value" : -Infinity }); { "acknowledged" : true, "insertedId" : 100 }
> db.demo5.insertOne({ "_id" : 101, "seq" : 10, "Value" : 50 }); { "acknowledged" : true, "insertedId" : 101 }
> db.demo5.insertOne({ "_id" : 102, "seq" : 20, "Value" : 60 }); { "acknowledged" : true, "insertedId" : 102 }
> db.demo5.insertOne({ "_id" : 103, "seq" : 20, "Value" : 50 }); { "acknowledged" : true, "insertedId" : 103 }
find() से सभी दस्तावेज़ प्रदर्शित करें:
> db.demo5.find();
आउटपुट:
{ "_id" : 100, "seq" : 10, "Value" : -Infinity }
{ "_id" : 101, "seq" : 10, "Value" : 50 }
{ "_id" : 102, "seq" : 20, "Value" : 60 }
{ "_id" : 103, "seq" : 20, "Value" : 50 }
seq के आधार पर औसत निकालने का क्वेरी (इसके परिणामस्वरूप -Infinity):
> db.demo5.aggregate([{$group:{"_id":"$seq", "average" : {$avg : "$Value"}}}]);
आउटपुट:
व्याख्या:
seq: 10ग्रुप में एक मान-Infinityहै। गणितीय रूप से, किसी भी संख्या में-Infinityजोड़ने का परिणाम-Infinityहोता है, इसलिए उस ग्रुप का औसत-Infinityहोता है।seq: 20ग्रुप में सामान्य संख्याएँ हैं, इसलिए औसत 55 है।