MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

नेवला / MongoDB:सरणी में तत्वों की गणना करें

आह, मुझे समाधान मिल गया है। MongoDB का aggregate फ्रेमवर्क हमें एक संग्रह पर कार्यों की एक श्रृंखला को निष्पादित करने की अनुमति देता है। विशेष रूप से नोट है $unwind , जो किसी दस्तावेज़ में एक सरणी को अद्वितीय दस्तावेज़ों . में विभाजित करता है , इसलिए वे समूह / गिने जा सकते हैं एक साथ

MongooseJS एक मॉडल पर इसे बहुत आसानी से उजागर करता है। ऊपर दिए गए उदाहरण का उपयोग करते हुए, यह इस प्रकार दिखता है:

Thing.aggregate([
    { $match: { /* Query can go here, if you want to filter results. */ } } 
  , { $project: { tokens: 1 } } /* select the tokens field as something we want to "send" to the next command in the chain */
  , { $unwind: '$tokens' } /* this converts arrays into unique documents for counting */
  , { $group: { /* execute 'grouping' */
          _id: { token: '$tokens' } /* using the 'token' value as the _id */
        , count: { $sum: 1 } /* create a sum value */
      }
    }
], function(err, topTopics) {
  console.log(topTopics);
  // [ foo: 4, bar: 2 baz: 2 ]
});

यह ~ 200,000 रिकॉर्ड में प्रारंभिक परीक्षणों में MapReduce की तुलना में काफी तेज है, और इस प्रकार संभवतः बेहतर पैमाने पर है, लेकिन यह एक सरसरी नज़र के बाद ही है। वाईएमएमवी.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. किसी अन्य PHP वर्ग से MongoDB से कैसे कनेक्ट करें?

  2. नेवला सबडोक को आबाद करता है

  3. MongoDb पाइपलाइन एकत्रीकरण उप उप दस्तावेजों को छांटना

  4. MongoDB में 2GB से अधिक का डेटाबेस

  5. मैं नेवला में एकाधिक दस्तावेज़ कैसे अपडेट कर सकता हूं?