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

MongoDB एकत्रीकरण के साथ कई क्षेत्रों द्वारा गणना करें

<घंटा/>

एकाधिक फ़ील्ड द्वारा गिनने के लिए, MongoDB में $facet का उपयोग करें। $facet इनपुट दस्तावेज़ों के एक ही सेट पर एक ही चरण में कई एकत्रीकरण पाइपलाइनों को संसाधित करता है। आइए दस्तावेजों के साथ एक संग्रह बनाएं -

> db.demo721.insertOne(... {...... "details1":{... "id":101...... },... "details2":{. .. "id":101...},... "details3":{... "id":101...}...}...);{ "स्वीकृत" :सच, "insertId" " :ObjectId("5eaaebdd43417811278f5887")}>>> db.demo721.insertOne(... {...... "details1":{... "id":101......},. .. "details2":{... "id":102...},... "details3":{... "id":102...}...}...);{ "स्वीकृत" :सच, "insertId" :ObjectId("5eaaebe943417811278f5888")}

संग्रह से सभी दस्तावेज़ों को खोजने () विधि की सहायता से प्रदर्शित करें -

> db.demo721.find();

यह निम्नलिखित आउटपुट उत्पन्न करेगा -

{ "_id" :ObjectId("5eaaebdd43417811278f5887"), "details1" :{ "id" :101 }, "details2" :{ "id" :101 }, "details3" :{ "id" :101 } }{ "_id" :ObjectId ("5eaaebe943417811278f5888"), "details1" :{ "id" :101 }, "details2" :{ "id" :102 }, "details3" :{ "id" :102 } } 

कई क्षेत्रों द्वारा गणना की जाने वाली क्वेरी निम्नलिखित है -

> db.demo721.aggregate([... {$face:{... ids:[... {$group:{ _id:null,... d3:{$addToSet:"$details3. id"},... d2:{$addToSet:"$details2.id"},... d1:{$addToSet:"$details1.id"}}},... {$project:{ _id:0,... लिस्टोफॉल:{$सेटयूनियन:["$d1",,"$d2","$d3"]}}}],... d:[{$project:{ _id:0,... a1:"$details1.id",... a2:"$details2.id",... a3:"$details3.id"}}]}},... {$अनविंड:"$d"} ,... {$अनविंड:"$ids"},... {$अनविंड:"$ids.listofall"},... {$group:{ _id:"$ids.listofall",... details1id :{$sum:{$cond:[{$eq:["$d.a1","$ids.listofall"]},1,0]}},... details2id:{$sum:{$cond :[{$eq:["$d.a2","$ids.listofall"]},1,0]}},... details3id:{$sum:{$cond:[{$eq:[" $d.a3","$ids.listofall"]},1,0]}}}}])

यह निम्नलिखित आउटपुट उत्पन्न करेगा -

{ "_id" :102, "details1id" :0, "details2id" :1, "details3id" :1 }{ "_id" :101, "details1id" :2, "details2id" :1, "details3id" :1 } 
  1. MongoDB के साथ सरणी में आइटम कैसे गिनें?

    सरणी में आइटम गिनने के लिए, लंबाई का उपयोग करें। आइए दस्तावेजों के साथ एक संग्रह बनाएं - > db.demo440.insertOne( ...    { ...       "Name":"Chris", ...       "ListOfFriends":["John","Sam","Mike"] .

  1. MongoDB एकत्रीकरण फ़ील्ड को संयोजित या मर्ज करने और फिर गिनने के लिए?

    फ़ील्ड को संयोजित या मर्ज करने और फिर गणना करने के लिए, $समूह के साथ $sum और $sort का उपयोग करें। आइए दस्तावेजों के साथ एक संग्रह बनाएं - db.demo647.insertOne({Subject:MongoDB});{ acknowledge :true, insertedId :ObjectId(5e9c86c16c954c74be91e6f4)} संग्रह से सभी दस्तावेज़ों को खोजने () विधि की सहायत

  1. एकाधिक कॉलम के साथ MySQL एकाधिक COUNT?

    आप IF() के साथ एक समग्र फ़ंक्शन SUM() का उपयोग कर सकते हैं। आइए पहले एक टेबल बनाएं - तालिका बनाएं DemoTable(FirstName varchar(100), LastName varchar(100));क्वेरी ठीक है, 0 पंक्तियाँ प्रभावित (2.80 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें - डेमोटेबल मानों में डालें (सैम, स्मिथ)