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

MongoDB में मल्टीपल कॉलम द्वारा ग्रुप करके डुप्लिकेट IDs के साथ कुल मार्क्स जोड़ना

इसके लिए aggregate() के साथ $group का उपयोग करें।

नमूना डेटा बनाना (डुप्लिकेट IDs के साथ)

> db.demo627.insertOne({id:101,"Name":"Chris","Marks":54});
> db.demo627.insertOne({id:102,"Name":"Bob","Marks":74});
> db.demo627.insertOne({id:101,"Name":"Chris","Marks":87});
> db.demo627.insertOne({id:102,"Name":"Mike","Marks":70});

सभी दस्तावेज़ देखना

> db.demo627.find();
{ "id" : 101, "Name" : "Chris", "Marks" : 54 }
{ "id" : 102, "Name" : "Bob", "Marks" : 74 }
{ "id" : 101, "Name" : "Chris", "Marks" : 87 }
{ "id" : 102, "Name" : "Mike", "Marks" : 70 }

मल्टीपल कॉलम द्वारा ग्रुप करके कुल मार्क्स जोड़ने की क्वेरी

> db.demo627.aggregate([
  { "$group": {
    "_id": { "id": "$id", "Name": "$Name" },
    "Marks": { "$sum": "$Marks" }
  }},
  { "$group": {
    "_id": { "id": "$_id.id", "Name": "$_id.Name" },
    "TotalMarks": { "$sum": "$Marks" }
  }}
], { "allowDiskUse": true } );

परिणाम:

{ "_id" : { "id" : 101, "Name" : "Chris" }, "TotalMarks" : 141 }
{ "_id" : { "id" : 102, "Name" : "Bob" }, "TotalMarks" : 74 }
{ "_id" : { "id" : 102, "Name" : "Mike" }, "TotalMarks" : 70 }

व्याख्या: पहला $group id और Name के संयोजन द्वारा समूहित करता है (Chris के दो रिकॉर्ड 54+87=141)। दूसरा $group समान संरचना बनाए रखता है। ध्यान दें: id 102 के दो अलग नाम (Bob, Mike) हैं, इसलिए वे अलग-अलग समूह बनाते हैं।

  1. - MongoDB में ऐरे के साथ ग्रुप बाय परिणाम कैसे प्राप्त करें?

    ऐरे के साथ ग्रुप बाय परिणाम प्राप्त करने के लिए aggregate() का उपयोग करें। हम $addToSet ऑपरेटर का भी उपयोग करेंगे। यह मान को ऐरे में जोड़ता है जब तक कि मान पहले से मौजूद न हो, जिस स्थिति में $addToSet उस ऐरे के लिए कुछ नहीं करता। नमूना डेटा बनाना db.demo498.insertOne({id:5,Name:[David]}); सभी दस्

  1. - MongoDB एग्रीगेशन में मल्टीपल फ़ील्ड्स द्वारा काउंट करना

    एक ही पाइपलाइन में कई फ़ील्ड्स पर काउंट करने के लिए $facet का उपयोग करें। डेमो डेटा db.demo721.insertOne({ details1: { id:101 }, details2: { id:101 }, details3: { id:101 } }); db.demo721.insertOne({ details1: { id:101 }, details2: { id:102 }, details3: { id:102 } }); क्वेरी

  1. - MongoDB Aggregate एकाधिक परिणाम ग्रुप करें?

    एकाधिक परिणाम एग्रीगेट करने के लिए MongoDB में $group का उपयोग करें। आइए एक कलेक्शन बनाते हैं: > db.demo765.insertOne( { Name:John, Category:ComputerScience, SubjectName:MongoDB, Marks:75 } ); { acknowledged : true, insertedId : ObjectId(5eb054525637cd592b2a4b01) } > db.demo765.insertOne( { N