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

MongoDB में एक ग्रुप में योग एकत्रित करना

MongoDB एग्रीगेशन में $sum और $cond का उपयोग करके सशर्त गणना करना

MongoDB में $group स्टेज के साथ $sum और $cond का उपयोग करके एक ही ग्रुप में विभिन्न शर्तों के आधार पर गणना करें।

उदाहरण: संग्रह और दस्तावेज़ बनाना

> db.demo406.insertOne({"Score":35});
{ "acknowledged" : true, "insertedId" : ObjectId("5e6f99d5fac4d418a0178599") }
> db.demo406.insertOne({"Score":55});
{ "acknowledged" : true, "insertedId" : ObjectId("5e6f99d8fac4d418a017859a") }
> db.demo406.insertOne({"Score":35});
{ "acknowledged" : true, "insertedId" : ObjectId("5e6f99dcfac4d418a017859b") }
> db.demo406.insertOne({"Score":45});
{ "acknowledged" : true, "insertedId" : ObjectId("5e6f99defac4d418a017859c") }
> db.demo406.insertOne({"Score":65});
{ "acknowledged" : true, "insertedId" : ObjectId("5e6f99e3fac4d418a017859d") }
> db.demo406.insertOne({"Score":45});
{ "acknowledged" : true, "insertedId" : ObjectId("5e6f99e6fac4d418a017859e") }

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

> db.demo406.find();

आउटपुट:

{ "_id" : ObjectId("5e6f99d5fac4d418a0178599"), "Score" : 35 }
{ "_id" : ObjectId("5e6f99d8fac4d418a017859a"), "Score" : 55 }
{ "_id" : ObjectId("5e6f99dcfac4d418a017859b"), "Score" : 35 }
{ "_id" : ObjectId("5e6f99defac4d418a017859c"), "Score" : 45 }
{ "_id" : ObjectId("5e6f99e3fac4d418a017859d"), "Score" : 65 }
{ "_id" : ObjectId("5e6f99e6fac4d418a017859e"), "Score" : 45 }

सशर्त योग एकत्रित करने के लिए एग्रीगेशन

> db.demo406.aggregate([
  {
    "$group": {
      "_id": null,
      "Score1": {
        "$sum": {
          "$cond": [{ "$eq": [ "$Score", 35 ] }, 1, 0 ]
        }
      },
      "Score2": {
        "$sum": {
          "$cond": [{ "$ne": [ "$Score", 35 ] }, 1, 0 ]
        }
      },
      "Score3": {
        "$sum": {
          "$cond": [{ "$ne": [ "$Score", 59 ] }, "$Score", 0 ]
        }
      }
    }
  }
])

आउटपुट:

{ "_id" : null, "Score1" : 2, "Score2" : 4, "Score3" : 280 }

व्याख्या:

  • Score1: Score == 35 वाले दस्तावेज़ों की गिनती (2 दस्तावेज़)
  • Score2: Score != 35 वाले दस्तावेज़ों की गिनती (4 दस्तावेज़)
  • Score3: Score != 59 वाले सभी दस्तावेज़ों के Score का योग (35+55+35+45+65+45 = 280)

सिंटैक्स: {$cond: [condition, trueValue, falseValue]}

उपयोगी पैटर्न:

// गिनती
{$sum: {$cond: [{$eq: ["$field", value]}, 1, 0]}}

// सशर्त योग
{$sum: {$cond: [condition, "$numericField", 0]}}

// औसत
{$avg: {$cond: [condition, "$numericField", "$$REMOVE"]}} // $$REMOVE से बाहर रखें
  1. - MongoDB में प्रत्येक समूह में अधिकतम आइटम कैसे चुनें?

    आप $group का उपयोग कर सकते हैं। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo659.insertOne({Name:Chris,CountryName:US,Marks:50}); { acknowledged : true, insertedId : ObjectId(5ea1a50724113ea5458c7cf9) } > db.demo659.insertOne({Name:David,CountryName:US,Marks:60}); { acknowledged : true, in

  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

  1. - MongoDB में एक क्वेरी से कई डॉक्यूमेंट्स कैसे अपडेट करें?

    एक क्वेरी से कई डॉक्यूमेंट्स अपडेट करने के लिए MongoDB में bulkWrite() का उपयोग करें। आइए एक कलेक्शन बनाते हैं: > db.demo760.insertOne({id:1,details:{Value1:100,Value2:50}}); { acknowledged : true, insertedId : ObjectId(5eb0309f5637cd592b2a4aee) } > db.demo760.insertOne({id:2,details:{Value1: