MongoDB समग्र गणना के साथ दस्तावेज़ों की गणना कैसे करें

Mongodb Samagra Ganana Ke Satha Dastavezom Ki Ganana Kaise Karem



जैसा कि नाम से पता चलता है, MongoDB में $count एकत्रीकरण का उपयोग फ़ील्ड रिकॉर्ड की गिनती के लिए किया जाना चाहिए। रिकॉर्ड गिनने के लोकप्रिय तरीकों में से एक count() विधि का उपयोग करना है। इसके अतिरिक्त, कुछ एकत्रीकरण ऑपरेटर आपको समग्र पाइपलाइन के पिछले चरण से लाए गए रिकॉर्ड की गिनती करने देते हैं। आज इस गाइड में, हम कोड उदाहरणों का उपयोग करके MongoDB के गिनती एकत्रीकरण पर चर्चा करेंगे।

उदाहरण 01

MongoDB में डेटाबेस संग्रह के फ़ील्ड पर $count ऑपरेशन करने के लिए, हमारे पास कई रिकॉर्ड होने चाहिए। इसलिए, हमने 'टेस्ट' नामक एक संग्रह बनाया और InsertMany() फ़ंक्शन का उपयोग करके इसमें एक साथ 12 रिकॉर्ड डाले। अब, इस 'टेस्ट' संग्रह के रिकॉर्ड को खोज() फ़ंक्शन क्वेरी के माध्यम से MongoDB शेल पर प्रदर्शित किया गया है। आप देख सकते हैं कि इसमें कुल तीन फ़ील्ड हैं:_आईडी, नाम और स्कोर।

परीक्षण> db.Test.find({})







अब, किसी भी क्षेत्र पर $count चरण को लागू करने के लिए, हमें 'db' निर्देश के भीतर MongoDB के समग्र फ़ंक्शन का उपयोग करना होगा। एग्रीगेट फ़ंक्शन में कंडीशन स्टेटमेंट शामिल होता है, जो अक्सर एक विशिष्ट फ़ील्ड पर $match ऑपरेटर का उपयोग करता है, उसके बाद एक नया फ़ील्ड होता है जो $count ऑपरेटर का उपयोग करके निर्दिष्ट कंडीशन फ़ील्ड से प्राप्त कुल गणना प्रदर्शित करता है।



हमारे मामले में, हम स्कोर फ़ील्ड में '60' मान के लिए मिलान रिकॉर्ड खोजने के लिए $match ऑपरेटर को नियोजित कर रहे हैं, जबकि $count ऑपरेटर का उपयोग लाए गए रिकॉर्ड की कुल संख्या की गणना करने और उन्हें नीचे प्रदर्शित करने के लिए किया गया है। नए फ़ील्ड का नाम 'सेमस्कोर' रखा गया है। इस क्वेरी का आउटपुट '2' मान के साथ एक फ़ील्ड 'सेमस्कोर' दिखा रहा है जो दर्शाता है कि 'टेस्ट' संग्रह में 'स्कोर' मान '60' 2 के साथ दो रिकॉर्ड हैं।



db.Test.aggregate([ { $मैच: { 'अंक' : 60 } }, {$गिनती: 'समानस्कोर' } ])

आप संख्याओं के अलावा अन्य फ़ील्ड्स की गणना करने के लिए $count एकत्रीकरण का भी उपयोग कर सकते हैं, जैसे परीक्षण संग्रह का 'नाम' फ़ील्ड। हम संग्रह में रिकॉर्ड खोजने के लिए मिलान एकत्रीकरण का उपयोग कर रहे हैं जहां नाम फ़ील्ड का मान 'जॉन' है। गिनती एकत्रीकरण ने मिलान किए गए रिकॉर्ड की कुल संख्या को सफलतापूर्वक गिना है जो 2 है।





db.Test.aggregate([ { $मैच: { 'नाम' : 'जॉन' } }, {$गिनती: 'एक ही नाम' } ])

उदाहरण 02

आइए उपरोक्त क्वेरी को अपडेट करें और अलग-अलग रिकॉर्ड प्राप्त करने के लिए एक और शर्त लागू करें। इस बार, हम रिकॉर्ड्स की कुल संख्या प्राप्त करने के लिए स्कोर फ़ील्ड के $match एकत्रीकरण को लागू करेंगे जहां स्कोर फ़ील्ड का मान 30 से कम है। गिनती एकत्रीकरण रिकॉर्ड्स की कुल संख्या की गणना करेगा और एक नया जोड़ देगा कॉलम 'ग्रेडडी।' आउटपुट मिलान किए गए मान के लिए गणना संख्या के रूप में परिणाम '2' दिखाता है।

db.Test.aggregate( [ { $ मैच: { स्कोर: { $lt: 30 } } }, {$गिनती: 'ग्रेडडी' } ] )

फ़ील्ड रिकॉर्ड पर 1 से अधिक शर्तों को निष्पादित करने के लिए तार्किक ऑपरेटरों को लागू करते समय आप $count एकत्रीकरण का भी उपयोग कर सकते हैं। इसलिए, $and ऑपरेटर का उपयोग करके 'स्कोर' फ़ील्ड में कुल दो शर्तें लागू की गई हैं: gte (इससे अधिक या इसके बराबर) और lte (इससे कम और इसके बराबर)। परिणाम प्राप्त करने और उसके रिकॉर्ड गिनने के लिए दोनों स्थितियाँ सत्य होनी चाहिए। कुल गणना से पता चलता है कि मिलान मानदंडों के साथ पांच रिकॉर्ड हैं।



db.Test.aggregate( [ {$मैच: { '$और' : [ { 'अंक' : {$gte: 60 }}, { 'अंक' : {$एलटीई: 80 }} ] }},

{$गिनती: 'ग्रेड बी' } ] )

उदाहरण 03

उपरोक्त उदाहरणों में, हमने गिनती एकत्रीकरण का उपयोग केवल विशिष्ट फ़ील्ड मानों, जैसे निर्दिष्ट स्कोर या नाम के लिए मिलान किए गए रिकॉर्ड की संख्या प्राप्त करने के लिए किया है। MongoDB की एकत्रीकरण विधि आपको संग्रह में डुप्लिकेट मान वाले सभी रिकॉर्ड की गिनती संख्या प्राप्त करने की अनुमति देती है।

इसके लिए, आपको नीचे दिए अनुसार एग्रीगेट फ़ंक्शन कमांड के भीतर $group एकत्रीकरण का उपयोग करना होगा। फ़ील्ड _id का उपयोग 'नाम' फ़ील्ड को निर्दिष्ट करने के लिए किया गया है जिस पर गिनती एकत्रीकरण काम करेगा। इसके साथ ही, NameCount उपयोगकर्ता-परिभाषित फ़ील्ड 'नाम' फ़ील्ड में कई डुप्लिकेट की गणना करने के लिए $count एकत्रीकरण का उपयोग करेगा।

इस क्वेरी का आउटपुट नीचे प्रदर्शित किया गया है। इसमें 'नाम' फ़ील्ड से मान और मानों के दोहराव के अनुसार नेमकाउंट फ़ील्ड के भीतर उनकी गिनती संख्या शामिल है, जैसे कि सिलियन के पास 4 डुप्लिकेट हैं, और इसी तरह।

db.Test.aggregate([ { $समूह: { _आईडी: '$नाम' , नामगणना: { $गिनती: {} }, }, }, ])

उदाहरण 04

हम विशिष्ट फ़ील्ड मानों की गणना करने के लिए नेस्टेड फ़ील्ड रिकॉर्ड पर गिनती एकत्रीकरण का भी उपयोग कर सकते हैं। इसे विस्तृत करने के लिए, हमने 'शिक्षक' नाम से एक संग्रह बनाया है और इसमें नेस्टेड फ़ील्ड 'उप' और सरणी-प्रकार फ़ील्ड 'शिफ्ट' को अन्य फ़ील्ड के साथ जोड़ा है: नाम और भुगतान। खोज() फ़ंक्शन इस संग्रह के सभी पांच रिकॉर्ड प्रदर्शित कर रहा है।

परीक्षण> db.Teacher.find({})

अब, हमने मैच ऑपरेटर वाले एग्रीगेट फ़ंक्शन को लागू किया है। साथ ही, $and ऑपरेटर को 'उप' फ़ील्ड के उप-फ़ील्ड 'गणित' पर लागू किया गया है, जिसमें दो अलग-अलग शर्तें शामिल हैं। इसके बाद गिनती की गणना की गई। आउटपुट से पता चलता है कि दो रिकॉर्ड हैं जहां उपक्षेत्र गणित में 10 से अधिक और 20 से कम मान हैं।

db.Teacher.aggregate( [ {$मैच: { '$और' : [ { 'उप.गणित' : {$gte: 10 }}, { 'उप.गणित' : {$एलटीई: बीस }} ] }}, { $गिनती: 'ग्रेड ए' } ] )

उदाहरण 05

आइए इस बार गिनती एकत्रीकरण का उपयोग करने के बजाय गिनती() फ़ंक्शन का उपयोग करने के लिए अंतिम उदाहरण देखें। तो, गिनती () फ़ंक्शन को 'शिक्षक' संग्रह के सरणी-प्रकार फ़ील्ड यानी 'शिफ्ट' पर लागू किया गया है। इंडेक्स 2 का उपयोग करके सरणी फ़ील्ड के लिए इंडेक्स का उपयोग करते हुए, हमने मिलान मानदंड को 'रात' के रूप में निर्दिष्ट किया है। यह 'रात' प्रविष्टि के लिए गिनती की कुल संख्या के रूप में '2' आउटपुट करता है।

db.शिक्षक.गिनती({ 'शिफ्ट.2' : 'रात' })

बहुत ही समान तरीके से, गिनती() फ़ंक्शन को नेस्टेड फ़ील्ड पर भी लागू किया जा सकता है, जैसे संग्रह 'शिक्षक' से 'उप' फ़ील्ड का सबफ़ील्ड 'phy'। हमने 'एलटीई' ऑपरेटर का उपयोग करके मिलान मानदंड निर्दिष्ट किया है जो 'फाई' उपक्षेत्र में 14 से कम मान दर्शाता है। इस निर्देश का आउटपुट '2' यानी 14 से कम मान वाले 4 रिकॉर्ड प्रदर्शित कर रहा है।

db.शिक्षक.गिनती( { 'sub.phy' : {$एलटीई: 14 } })

निष्कर्ष

यह मार्गदर्शिका कई कोड उदाहरणों के साथ MongoDB के $count एकत्रीकरण का उपयोग करने का प्रदर्शन और विस्तार कर रही है। उदाहरणों में संग्रह के माध्यम से विशिष्ट मूल्य रिकॉर्ड और सभी फ़ील्ड रिकॉर्ड के लिए गिनती संख्या लाने के लिए गिनती एकत्रीकरण का निहितार्थ शामिल है। इसके अलावा, इसमें सरणी फ़ील्ड और एम्बेडेड (नेस्टेड) ​​फ़ील्ड पर गिनती एकत्रीकरण का उपयोग शामिल है। अंत में, गिनती एकत्रीकरण और गिनती फ़ंक्शन के उपयोग के बीच अंतर बनाने के लिए गिनती() फ़ंक्शन उदाहरण को शामिल किया गया है।