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

MeteorJS में MongoDB एग्रीगेट और ग्रुपिंग इश्यू

अगर आप उल्का हैक एग्रीगेट का इस्तेमाल कर रहे हैं एक .aggregate() implement को लागू करने के लिए पैकेज आपके संग्रह पर आदेश, तो यह केवल प्रतिक्रिया में एक सरणी लौटाएगा। तो आपको इसे एक प्रकाशित संग्रह के रूप में काम करने की आवश्यकता है:

Meteor.publish("completedLB,function() {
    var self = this;

    var results = userCompleted.aggregate([
        { "$match": { "progressState": true } },
        { "$group": {
            "_id": "$userId",
             "progressState": { "$first": "$progressState" },
             "count": { "$sum": 1 }
        }},
        { "$sort": { "_id": 1 } }
    ]);

    _.each(results,function(result) {
        self.added("client_collection_name",Random.id(), {
            userId: result._id,
            progressState: result.progressState,
            count: result.count
        });
    });
    self.ready();
});

या गलत शामिल करने के लिए आपके द्वारा सुझाए गए आउटपुट के अनुसार ही मायने रखता है:

        { "$group": {
            "_id": "$userId",
             "progressState": { "$first": true },
             "count": { "$sum": { "$cond": ["$progressState", 1,0] }
        }},
        { "$sort": { "_id": 1 } }

एक $cond संख्यात्मक में बदलने के लिए मूल्यांकन।

जहां मूल एकत्रीकरण में आप मिलान किए गए परिणामों को "कुल" कर रहे हैं और निश्चित रूप से $सॉर्ट करें आउटपुट में मौजूद एक फ़ील्ड को संदर्भित करता है, जो आपके उदाहरण से _id में अब "userId" मान होगा एकत्रीकरण से कुंजी, लेकिन यदि वांछित हो तो कुल गिनती के आधार पर "गिनती" भी हो सकती है।

वह भाग त्रुटि उत्पन्न कर रहा था, जैसे $sort एक वर्तमान फ़ील्ड है और $ . के साथ फ़ील्ड मान नहीं है संकेतन।

लेकिन निश्चित रूप से एक ग्राहक सुलभ संग्रह के रूप में प्रकाशित करने के लिए आपको वास्तविक _id . को प्रतिस्थापित करने की आवश्यकता है कुछ अपेक्षित के साथ। इसलिए रैंडम आईडी जेनरेशन यहां काम करता है, जैसा कि अन्य क्षेत्रों को शामिल करने से होता है।

थोड़ा और विवरण के लिए, और "हैक्स" पैकेज का एक विकल्प भी है जो सिर्फ एक वेनिला इंस्टॉलेशन के साथ काम करता है, यह उत्तर अपने आप से जिसमें एक उदाहरण के रूप में पूरी सूची है।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB:भू-स्थानिक सूचकांक सरणी सही प्रारूप में नहीं है

  2. मोंगोडब में कई स्थितियों के साथ अद्यतन सरणी

  3. त्रुटि:getaddrinfo ENOTFOUND नोडज में कॉल पाने के लिए

  4. MongoDB नेस्टेड डेटा द्वारा दस्तावेज़ों को छाँटना

  5. MongoDB में डेटा का असामान्यकरण