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

मोंगोडब एग्रीगेट में फ़ील्ड शामिल करें

इसमें फ़ील्ड शामिल नहीं है क्योंकि आपने फ़ील्ड को वापस करने के लिए नहीं कहा था। यहां जो चीज आपको याद आ रही है वह है $first या इसी तरह का "accumulator" $group

इसके अलावा, यदि आप खाली ईमेल पता नहीं चाहते हैं, तो उसे में शामिल न करें। $मिलान पाइपलाइन चरण, क्योंकि यह करने के लिए सबसे कुशल काम है।

db.collection.aggregate([
    { $match: { branch: "CO", "customerEmail": { "$ne": "" } } },
    { $group:
        {
            _id: { customer:"$customerID"},
            email: { "$first": "$customerEmail" }
        }
    }
]);

एक "पाइपलाइन" केवल $ जैसे चरणों से "आउटपुट" लौटाती है समूह या $project कि आप वास्तव में इसे पूछते हैं। बिल्कुल "यूनिक्स पाइप" की तरह | ऑपरेटर, "अगले चरण" के लिए केवल वही चीजें उपलब्ध हैं जो आप आउटपुट करते हैं।

यह बस से स्पष्ट होना चाहिए:

db.collection.aggregate([
    { $match: { branch: "CO" } },   
    { $group:
        {
            _id: { customer:"$customerID"}
        }
    }
]);

या यहां तक ​​कि:

db.collection.aggregate([
    { $match: { branch: "CO" } },   
    { $project:
        {
            _id: { customer:"$customerID"}
        }
    }
]);

जो निश्चित रूप से केवल _id लौटाता है मूल्य क्योंकि आपने यही मांगा है।

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

मेरा सुझाव है कि सभी एकत्रीकरण ऑपरेटरों को देखने के लिए समय निकालें। और वे वास्तव में क्या करते हैं। प्रत्येक ऑपरेटर के साथ उदाहरण उपयोग होता है




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. बाध्यकारी गतिशील सर्वर प्रतिक्रिया (नेस्टेड जेसन)

  2. नेवला के साथ केवल दिनांक भाग को कैसे सहेजा जाए, ISODate प्रारूप में नहीं

  3. php_ini php.ini स्थान पर सेट नहीं है

  4. MongoDB:कुछ और कई के बीच की सीमा कहाँ है?

  5. bson के प्रकार के जावास्क्रिप्ट/जावास्क्रिप्टविथस्कोप का उपयोग क्या है?