Mongodb: समूह और योग कैसे करें


आप MongoDB में समूह बनाने और गिनती करने के लिए निम्नलिखित सिंटैक्स का उपयोग कर सकते हैं:

 db.collection.aggregate([
    { $group : { _id : " $field_name1 ", count :{ $sum : " $field_name2 "}}}
])

ध्यान दें कि field_name1 वह फ़ील्ड है जिसके आधार पर आप समूह बनाना चाहते हैं और field_name2 वह फ़ील्ड है जिसका आप योग करना चाहते हैं।

निम्नलिखित उदाहरण दिखाते हैं कि निम्नलिखित दस्तावेज़ों वाली संग्रह टीम के साथ इस सिंटैक्स का उपयोग कैसे करें:

 db.teams.insertOne({team: " Mavs ", position: " Guard ", points: 31 })
db.teams.insertOne({team: " Spurs ", position: " Forward ", points: 22 })
db.teams.insertOne({team: " Rockets ", position: " Center ", points: 19 })
db.teams.insertOne({team: " Warriors ", position: " Forward ", points: 26 })
db.teams.insertOne({team: " Cavs ", position: " Guard ", points: 33 })

उदाहरण 1: समूह द्वारा और योग

हम “स्थिति” फ़ील्ड के आधार पर समूह बनाने और प्रत्येक स्थिति के लिए अंकों का योग गिनने के लिए निम्नलिखित कोड का उपयोग कर सकते हैं।

 db.teams.aggregate([
    { $group : { _id : " $position ", count :{ $sum : " $points "}}}
])

यह निम्नलिखित परिणाम लौटाता है:

 { _id: ' Forward ', count: 48 }
{ _id: ' Guard ', count: 64 }
{ _id: ' Center ', count: 19 }

यह हमें बताता है:

  • “हमलावर” स्थिति में खिलाड़ियों के कुल 48 अंक हैं।
  • “गार्ड” पद वाले खिलाड़ियों के पास कुल 64 अंक हैं।
  • “केंद्र” स्थिति में खिलाड़ियों के कुल 19 अंक हैं।

उदाहरण 2: समूहबद्ध करें और जोड़ें (फिर क्रमबद्ध करें)

हम प्रत्येक स्थिति के लिए अंकों का योग ज्ञात करने के लिए निम्नलिखित कोड का उपयोग कर सकते हैं और परिणामों को स्वचालित रूप से आरोही क्रम में क्रमबद्ध कर सकते हैं:

 db.teams.aggregate([
    { $group : { _id : " $position ", count :{ $sum : " $points "}}},
    { $sort : { count : 1}} 
])

यह निम्नलिखित परिणाम लौटाता है:

 { _id: ' Center ', count: 19 }
{ _id: ' Forward ', count: 48 }
{ _id: ' Guard ', count: 64 }

परिणामों को अंकों के आधार पर आरोही क्रम में (सबसे छोटे से सबसे बड़े तक) क्रमबद्ध किया जाता है।

हम परिणामों को अवरोही क्रम में क्रमबद्ध करने के लिए गिनती तर्क में -1 का उपयोग कर सकते हैं:

 db.teams.aggregate([
    { $group : { _id : " $position ", count :{ $sum : " $points "}}},
    { $sort : { count :-1}} 
])

यह निम्नलिखित परिणाम लौटाता है:

 { _id: ' Guard ', count: 64 }
{ _id: ' Forward ', count: 48 }
{ _id: ' Center ', count: 19 }

ध्यान दें कि परिणाम अंकों के आधार पर अवरोही क्रम (सबसे बड़े से सबसे छोटे) में क्रमबद्ध हैं।

नोट : आप $group के लिए संपूर्ण दस्तावेज़ यहां पा सकते हैं।

अतिरिक्त संसाधन

निम्नलिखित ट्यूटोरियल बताते हैं कि MongoDB में अन्य सामान्य ऑपरेशन कैसे करें:

MongoDB: किसी फ़ील्ड में विशिष्ट मानों की गणना कैसे करें
MongoDB: एकाधिक फ़ील्ड के आधार पर समूह कैसे बनाएं
MongoDB: कैसे समूहबद्ध करें और गिनें

एक टिप्पणी जोड़ने

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *