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

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 }
});

क्वेरी

db.demo721.aggregate([
    {$facet:{
        ids:[
            {$group:{ _id:null,
                d3:{$addToSet: "$details3.id"},
                d2:{$addToSet:"$details2.id"},
                d1:{$addToSet:"$details1.id"}
            }},
            {$project:{ _id:0, listofall:{$setUnion:["$d1","$d2","$d3"]}}}
        ],
        d:[{$project:{ _id:0, a1:"$details1.id", a2:"$details2.id", a3:"$details3.id"}}]
    }},
    {$unwind:"$d"},
    {$unwind:"$ids"},
    {$unwind:"$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 }

यह प्रत्येक ID के लिए तीनों फ़ील्ड्स में घटनाओं की गिनती दिखाता है।

  1. - MongoDB में ऐरे में आइटम कैसे गिनें?

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

  1. - MongoDB एग्रीगेशन: फील्ड्स को मर्ज/कंबाइन करके काउंट करना

    फील्ड्स को मर्ज/कंबाइन करके काउंट करने के लिए $group के साथ $sum और $sort का उपयोग करें। नमूना डेटा बनाना (विषयों के साथ) db.demo647.insertOne({Subject:MongoDB}); सभी दस्तावेज़ देखना db.demo647.find(); { Subject : MySQL }, { Subject : MongoDB }, { Subject : MySQL }, { Subject : SQL Server }, { S

  1. - MySQL में एकाधिक कॉलम पर एकाधिक COUNT करें

    SUM(IF()) के साथ एक क्वेरी में एकाधिक कॉलम की सशर्त गणना एक ही क्वेरी में अलग-अलग कॉलम पर अलग-अलग शर्तों की गणना करने के लिए SUM(IF(condition, 1, 0)) पैटर्न का उपयोग करें। टेबल और डेटा CREATE TABLE DemoTable ( FirstName VARCHAR(100), LastName VARCHAR(100) ); Query OK, 0 rows affected (2.80