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

अद्वितीय फ़ील्ड वाले सभी दस्तावेज़ों के लिए उल्का क्वेरी

एक सामान्य सेटअप है जिसका उपयोग आप अंतर्निहित ड्राइवर संग्रह ऑब्जेक्ट तक पहुंचने के लिए कर सकते हैं और इसलिए .aggregate() कोई अन्य प्लग इन इंस्टॉल किए बिना।

मूल प्रक्रिया इस प्रकार है:

FooAges = new Meteor.Collection("fooAges");

Meteor.publish("fooAgeQuery", function(args) {
    var sub = this;

    var db = MongoInternals.defaultRemoteCollectionDriver().mongo.db;

    var pipeline = [
        { "$group": {
            "_id": "$age", 
            "name": { "$max": "$name" }
        }}
    ];

    db.collection("foo").aggregate(        
        pipeline,
        // Need to wrap the callback so it gets called in a Fiber.
        Meteor.bindEnvironment(
            function(err, result) {
                // Add each of the results to the subscription.
                _.each(result, function(e) {
                    // Generate a random disposable id for aggregated documents
                    sub.added("fooAges", Random.id(), {
                        "age": e._id,
                        "name": e.name
                    });
                });
                sub.ready();
            },
            function(error) {
                Meteor._debug( "Error doing aggregation: " + error);
            }
        )
    );

});

तो आप एकत्रीकरण के आउटपुट के लिए एक संग्रह को परिभाषित करते हैं और इस तरह की दिनचर्या के भीतर आप उस सेवा को प्रकाशित करते हैं जिसे आप अपने क्लाइंट में भी सब्सक्राइब करने जा रहे हैं।

इसके अंदर, एकत्रीकरण चलाया जाता है और दूसरे संग्रह में भर जाता है (तार्किक रूप से यह वास्तव में कुछ भी नहीं लिखता है)। तो आप क्लाइंट पर उसी परिभाषा के साथ उस संग्रह का उपयोग करते हैं और सभी समेकित परिणाम अभी वापस आ जाते हैं।

मेरे पास वास्तव में इस प्रश्न के भीतर समान प्रक्रियाओं का एक पूर्ण कामकाजी उदाहरण अनुप्रयोग है। , साथ ही उल्का हैक एग्रीगेट का उपयोग इस प्रश्न पर पैकेज यहां भी, अगर आपको और संदर्भ की आवश्यकता है।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. चाइल्ड कलेक्शन से कॉलम कैसे हटाएं

  2. मोंगोडीबी $strcasecmp

  3. मैं प्रोग्राम के रूप में AbstractMongoEventListener कैसे पंजीकृत करूं?

  4. MongoDB के बारे में, हम इसका उपयोग क्यों करते हैं? MongoDB की शब्दावली और कार्यान्वयन

  5. अरबों रिकॉर्डों को एकत्रित करते समय बहुत अधिक खुली हुई फ़ाइलों की त्रुटि को कैसे ठीक करें