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

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

फील्ड्स को मर्ज/कंबाइन करके काउंट करने के लिए $group के साथ $sum और $sort का उपयोग करें।

नमूना डेटा बनाना (विषयों के साथ)

> db.demo647.insertOne({"Subject":"MySQL"});
> db.demo647.insertOne({"Subject":"MongoDB"});
> db.demo647.insertOne({"Subject":"MySQL"});
> db.demo647.insertOne({"Subject":"SQL Server"});
> db.demo647.insertOne({"Subject":"MongoDB"});
> db.demo647.insertOne({"Subject":"PL/SQL"});
> db.demo647.insertOne({"Subject":"MongoDB"});

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

> db.demo647.find();
{ "Subject" : "MySQL" }, { "Subject" : "MongoDB" }, { "Subject" : "MySQL" }, { "Subject" : "SQL Server" }, { "Subject" : "MongoDB" }, { "Subject" : "PL/SQL" }, { "Subject" : "MongoDB" }

फील्ड्स मर्ज करके काउंट और सॉर्ट करने की क्वेरी (टॉप 2)

> db.demo647.aggregate([
  { "$group": { "_id": "$Subject", "COUNT": { "$sum": 1 } } },
  { "$sort": { "COUNT": -1 } },
  { "$limit": 2 }
] );

परिणाम (सबसे अधिक बार आने वाले टॉप 2):

{ "_id" : "MongoDB", "COUNT" : 3 }
{ "_id" : "MySQL", "COUNT" : 2 }

व्याख्या: $group Subject द्वारा समूहित करता है और $sum: 1 से गिनती करता है। $sort: {COUNT: -1} अवरोही क्रम में सॉर्ट करता है। $limit: 2 केवल टॉप 2 परिणाम लौटाता है।

  1. - MongoDB क्वेरी: डिस्टिंक्ट सेलेक्ट करें और काउंट करें

    आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo586.insertOne({ details: [ { Name:Chris, Marks:71 }, { Name:Chris, Marks:61 }, { Name:David, Marks:81 } ] }); { acknowledged : true, insertedId : ObjectId(5e9200fefd2d90c177b5bcc7) } > db.demo586.insertOne({

  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() के साथ $project का उपयोग करें। एग्रीगेशन में $project पाइपलाइन में अगले चरण के लिए अनुरोधित फील्ड्स के साथ डॉक्यूमेंट्स को पास करता है। आइए एक कलेक्शन बनाते हैं: > db.demo762.insertOne({ _id : { userId:101, userName:Chris }, countryName : US, details : [ { Name : Robert, Due