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

MongoDB $group का उपयोग करके मानों की सूची कैसे प्राप्त करें?

MongoDB एग्रीगेशन में $group और $push का उपयोग करके मानों को समूहित करना

$group स्टेज के साथ $push एक्यूमुलेटर का उपयोग करके एक फील्ड द्वारा डॉक्यूमेंट्स को समूहित करता है और दूसरे फील्ड के मानों को एक ऐरे में एकत्रित करता है।

नमूना डेटा बनाना

> db.groupByDemo.insertOne({"UserName":"John","Subject":"MongoDB"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd69f0457806ebf1256f136") }
> db.groupByDemo.insertOne({"UserName":"Larry","Subject":"MySQL"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd69f0657806ebf1256f137") }
> db.groupByDemo.insertOne({"UserName":"John","Subject":"Java"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd69f0d57806ebf1256f138") }
> db.groupByDemo.insertOne({"UserName":"John","Subject":"C"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd69f1357806ebf1256f139") }
> db.groupByDemo.insertOne({"UserName":"Larry","Subject":"SQL Server"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd69f1c57806ebf1256f13a") }

सभी डॉक्यूमेंट्स देखना

> db.groupByDemo.find().pretty();

आउटपुट:

{ "_id" : ObjectId("5cd69f0457806ebf1256f136"), "UserName" : "John", "Subject" : "MongoDB" }
{ "_id" : ObjectId("5cd69f0657806ebf1256f137"), "UserName" : "Larry", "Subject" : "MySQL" }
{ "_id" : ObjectId("5cd69f0d57806ebf1256f138"), "UserName" : "John", "Subject" : "Java" }
{ "_id" : ObjectId("5cd69f1357806ebf1256f139"), "UserName" : "John", "Subject" : "C" }
{ "_id" : ObjectId("5cd69f1c57806ebf1256f13a"), "UserName" : "Larry", "Subject" : "SQL Server" }

UserName द्वारा समूहित करना और Subjects एकत्रित करना

> db.groupByDemo.aggregate({
  $group: {
    '_id': '$UserName',
    'Subject': { $push: '$Subject' }
  }
});

आउटपुट:

{ "_id" : "Larry", "Subject" : [ "MySQL", "SQL Server" ] }
{ "_id" : "John", "Subject" : [ "MongoDB", "Java", "C" ] }

व्याख्या

  • _id: '$UserName' - UserName फील्ड द्वारा समूहित करता है।
  • $push: '$Subject' - प्रत्येक समूह के लिए Subject मानों को एक ऐरे में एकत्रित करता है।
  • परिणाम _id में समूहित फील्ड मान और ऐरे में एकत्रित मान दिखाता है।

संबंधित एक्यूमुलेटर्स

ऑपरेटरउद्देश्य
$pushसभी मानों को ऐरे में जोड़ता है (डुप्लिकेट शामिल)
$addToSetकेवल यूनिक मानों को ऐरे में जोड़ता है
$first/$lastसमूह में पहला/अंतिम मान (सॉर्ट ऑर्डर पर निर्भर)
$avg, $sum, $min, $maxन्यूमेरिक फील्ड्स के लिए गणितीय एक्यूमुलेशन

उपयोग के मामले

  • उपयोगकर्ता द्वारा टैग्स/श्रेणियों को समूहित करना।
  • ग्राहक द्वारा ऑर्डर आईडी एकत्रित करना।
  • परीक्षण परिणामों, लॉग एंट्रीज़ आदि को संकलित करना।
  1. - पायथन प्रोग्राम: दूसरी लिस्ट के मानों का उपयोग करके लिस्ट को मास्क करें

    जब दूसरी लिस्ट के मानों की सहायता से लिस्ट को मास्क करना हो, तो लिस्ट कॉम्प्रिहेंशन का उपयोग किया जाता है। उदाहरण नीचे इसका प्रदर्शन है my_list = [5, 6, 1, 9, 11, 0, 4] print(The list is :) print(my_list) search_list = [2, 10, 6, 3, 9] result = [1 if element in search_list else 0 for element in my_

  1. - पायथन | दूसरी सूची का उपयोग करके पहली सूची के मानों को क्रमबद्ध करें

    जब दूसरी सूची की सहायता से पहली सूची के मानों को क्रमबद्ध करने की आवश्यकता होती है, तो sorted मेथड और zip मेथड्स का उपयोग किया जाता है।एक सूची का उपयोग विषम मानों को संग्रहीत करने के लिए किया जा सकता है (यानी किसी भी डेटा प्रकार का डेटा जैसे पूर्णांक, फ्लोटिंग पॉइंट, स्ट्रिंग्स, आदि)।sorted मेथड का

  1. - पायथन - None मानों के साथ सूची से डिक्शनरी बनाएं

    मान लीजिए आपको एक सूची दी गई है लेकिन हम इसे डिक्शनरी में बदलना चाहते हैं। डिक्शनरी के तत्वों में दो मान होते हैं जिन्हें कुंजी-मान जोड़ी कहा जाता है, हम मान के मामले में None का उपयोग करेंगे। सूची के तत्व कुंजी बन जाएंगे और None एक प्लेसहोल्डर के रूप में रहेगा।dict के साथdict() कंस्ट्रक्टर पायथन मे