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

MongoDB एग्रीगेशन में $group फेज को तेज़ करना

MongoDB एग्रीगेशन में $project, $unwind, $group का उपयोग करके $group फेज ऑप्टिमाइज़ करना

MongoDB एग्रीगेशन में $group फेज के प्रदर्शन को बेहतर बनाने के लिए, ग्रुपिंग से पहले $project और $unwind का उपयोग करके केवल आवश्यक फील्ड्स पास करें और ऐरे को फ्लैट करें।

उदाहरण: संग्रह और दस्तावेज़ बनाना

> db.demo423.insertOne({"Information":[101,110,87,110,98,115,101,115,89,115]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e73a60e9822da45b30346e6") }

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

> db.demo423.find();

आउटपुट:

{ "_id" : ObjectId("5e73a60e9822da45b30346e6"), "Information" : [ 101, 110, 87, 110, 98, 115, 101, 115, 89, 115 ] }

आवृत्ति गिनती के लिए ऑप्टिमाइज़्ड एग्रीगेशन (टॉप 2)

> db.demo423.aggregate([
  { $project: {_id: 0, 'Information': 1} },
  { $unwind: '$Information' },
  { $group: {_id: '$Information', frequency: {$sum: 1}} },
  { $sort: {frequency: -1} },
  { $limit: 2 }
])

आउटपुट:

{ "_id" : 115, "frequency" : 3 }
{ "_id" : 110, "frequency" : 2 }

चरण-दर-चरण व्याख्या:

  1. $project: {_id: 0, 'Information': 1} - केवल आवश्यक फील्ड पास करें, _id हटाएं (डेटा ट्रांसफर कम)
  2. $unwind: '$Information' - ऐरे के प्रत्येक एलिमेंट के लिए अलग दस्तावेज़ बनाएं
  3. $group: {_id: '$Information', frequency: {$sum: 1}} - मान द्वारा ग्रुप करें और गिनें
  4. $sort: {frequency: -1} - आवृत्ति के अवरोही क्रम में सॉर्ट
  5. $limit: 2 - शीर्ष 2 परिणाम

प्रदर्शन अनुकूलन टिप्स:

  • जल्दी $project: अनावश्यक फील्ड्स जल्दी हटाएं
  • इंडेक्स उपयोग: $match को पाइपलाइन में पहले रखें ताकि इंडेक्स उपयोग हो सके
  • $limit जल्दी: यदि संभव हो तो $sort से पहले $limit (लेकिन यहां सॉर्ट जरूरी है)
  • allowDiskUse: true - बड़े डेटासेट के लिए डिस्क उपयोग की अनुमति
  • शार्डेड कलेक्शन: $group से पहले $sortByCount उपयोग करें

विकल्प: $sortByCount (MongoDB 3.4+)

db.demo423.aggregate([
  {$unwind: "$Information"},
  {$sortByCount: "$Information"},
  {$limit: 2}
])

$sortByCount $group + $sort का संक्षिप्त रूप है।

  1. विंडोज 10 प्रदर्शन बढ़ाएं: अपने PC को तेज करने के विशेषज्ञ चरण विंडोज 10 प्रदर्शन बढ़ाएं: अपने PC को तेज करने के विशेषज्ञ चरण

    यदि आप अपने विंडोज 10 कंप्यूटर को तेज करने के तरीके खोज रहे हैं, तो आप सही जगह पर हैं। आज तक मैंने कई विंडोज 10 कंप्यूटर देखे और ठीक किए हैं जो धीमे चल रहे थे, यहां तक कि नए - और कथित रूप से तेज - PC भी। मेरे अनुभव के अनुसार, विंडोज कई कारणों से धीमा चल सकता है जो सिस्टम के प्रदर्शन को प्रभावित करते

  1. एंटीवायरस सॉफ़्टवेयर आपके पीसी के प्रदर्शन को कैसे बढ़ा सकता है - जानें एंटीवायरस सॉफ़्टवेयर आपके पीसी के प्रदर्शन को कैसे बढ़ा सकता है - जानें

    कई उपयोगकर्ताओं को यह गलतफहमी है कि एक एंटीवायरस उनके पीसी को धीमा कर सकता है। हां, कुछ उदाहरण हो सकते हैं जब एक एंटीवायरस आपके पीसी को धीमा कर सकता है जिसे हम इस ब्लॉग में बाद में कवर करेंगे। भले ही एक एंटीवायरस आपके पीसी को धीमा कर दे (थोड़ा सा), यह ऐसा इसलिए करता है ताकि यह आपके पीसी को खतरों के

  1. अपने क्रोमबुक के प्रदर्शन को बढ़ाएं: धीमेपन के लिए त्वरित सुधार अपने क्रोमबुक के प्रदर्शन को बढ़ाएं: धीमेपन के लिए त्वरित सुधार

    क्या आपका क्रोमबुक हाल ही में थोड़ा सुस्त हो गया है? क्रोमबुक को फिर से तेज करने के लिए कुछ आसान बदलाव आज़माएं। क्रोमबुक किफायती, विश्वसनीय और तेज़ वेब-सर्फिंग लैपटॉप हैं। लेकिन इसका मतलब यह नहीं है कि वे पूर्ण हैं। समय के साथ क्रोमबुक धीमा हो जाता है जो बहुत निराशाजनक और परेशान करने वाला हो सकता ह