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

MongoDB में काउंट समकक्ष का उपयोग करके अधिकतम घटनाओं वाले शीर्ष यूज़र्स खोजें

MongoDB एग्रीगेशन में $group और $sum का उपयोग करके घटनाएं गिनना

SQL के COUNT(*) और GROUP BY के समकक्ष, MongoDB एग्रीगेशन में $group के साथ $sum: 1 का उपयोग करके दस्तावेज़ों को ग्रुप करके गिनती करें, फिर शीर्ष परिणामों के लिए सॉर्ट और लिमिट करें।

सैंपल डेटा बनाना

> db.demo264.insertOne({"Name":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e47ed441627c0c63e7dba9e") }
> db.demo264.insertOne({"Name":"David"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e47ed471627c0c63e7dba9f") }
> db.demo264.insertOne({"Name":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e47ed491627c0c63e7dbaa0") }
> db.demo264.insertOne({"Name":"Bob"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e47ed4c1627c0c63e7dbaa1") }
> db.demo264.insertOne({"Name":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e47ed4e1627c0c63e7dbaa2") }
> db.demo264.insertOne({"Name":"Bob"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e47ed531627c0c63e7dbaa3") }

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

> db.demo264.find();

आउटपुट:


एग्रीगेशन: नाम द्वारा ग्रुप, गिनती, सॉर्ट, टॉप 5

> db.demo264.aggregate([
    { $group: { _id: "$Name", count: { $sum: 1 } } },
    { $sort: { count: -1 } },
    { $limit: 5 }
]);

आउटपुट:


चरण-दर-चरण

  1. $group: _id: "$Name" - Name फ़ील्ड द्वारा ग्रुप, count: { $sum: 1 } - प्रत्येक ग्रुप के लिए गिनती
  2. $sort: count: -1 - गिनती द्वारा डिसेंडिंग सॉर्ट
  3. $limit: 5 - शीर्ष 5 परिणाम

SQL तुलना

> db.demo264.aggregate([
    { $group: { _id: "$Name", count: { $sum: 1 } } },
    { $group: { _id: null, total: { $sum: "$count" }, users: { $push: { name: "$_id", count: "$count" } } } },
    { $unwind: "$users" },
    { $project: { name: "$users.name", count: "$users.count", percentage: { $multiply: [ { $divide: [ "$users.count", "$total" ] }, 100 ] } } },
    { $sort: { count: -1 } },
    { $limit: 5 }
]);

इंडेक्स अनुकूलन


            
  1. - MongoDB नेस्टेड $group और $sum: समान ProductID वाले स्टॉक की गिनती कैसे प्राप्त करें?

    MongoDB में $group का उपयोग निर्दिष्ट _id एक्सप्रेशन द्वारा इनपुट दस्तावेज़ों को ग्रुप करने के लिए किया जाता है। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo466.insertOne( ... { ... ... "ProductPrice" :150, ... "ProductQuantity" : 1, ... "ProductName" : "P

  1. - MongoDB में नाम से उपयोगकर्ता नहीं मिल रहा?

    MongoDB में नाम से उपयोगकर्ता खोजने के लिए, find() का उपयोग करें। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo504.insertOne({Name:Chris}); { acknowledged : true, insertedId : ObjectId(5e8823ee987b6e0e9d18f570) } > db.demo504.insertOne({Name:John}); { acknowledged : true, insertedId : Obje

  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 } }); क्वेरी