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

मोंगो समूह और दो क्षेत्रों के साथ योग

चूंकि आपको बीच . के बीच आदान-प्रदान किए गए ईमेल की संख्या की गणना करने की आवश्यकता है 2 पते, एक एकीकृत between project प्रोजेक्ट करना उचित होगा निम्नलिखित के रूप में फ़ील्ड:

db.a.aggregate([
    { $match: {
        to: { $exists: true },
        from: { $exists: true },
        email: { $exists: true }
    }}, 
    { $project: {
        between: { $cond: { 
            if: { $lte: [ { $strcasecmp: [ "$to", "$from" ] }, 0 ] }, 
            then: [ { $toLower: "$to" }, { $toLower: "$from" } ], 
            else: [ { $toLower: "$from" }, { $toLower: "$to" } ] }
        } 
    }},
    { $group: {
         "_id": "$between",
         "count": { $sum: 1 } 
    }},
    { $sort :{ count: -1 } }
])

उदाहरण से एकीकरण तर्क बिल्कुल स्पष्ट होना चाहिए:यह दोनों ईमेल की वर्णानुक्रम में क्रमबद्ध सरणी है। $match और $toLower यदि आप अपने डेटा पर भरोसा करते हैं तो भाग वैकल्पिक हैं।

उदाहरण में प्रयुक्त ऑपरेटरों के लिए दस्तावेज़ीकरण:



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. 'यह' एक नेवला प्री सेव हुक में अपरिभाषित है

  2. MongoDB, Java, पहली सरणी प्रविष्टि के आधार पर छाँटें

  3. MongoEngine में ListField में एंबेडेड दस्तावेज़ पर परमाणु अद्यतन कैसे करें?

  4. महीने के स्तर और वर्ष के स्तर पर एकत्रीकरण, MongoDB में भी औसत ज्ञात करें

  5. स्प्रिंग डेटा का उपयोग करके MongoDB में DBObject डालें