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

mongoDB में मल्टी मैचिंग फिल्टर काउंट कैसे प्राप्त करें?

एकत्रीकरण ढांचे के माध्यम से एक बार में बहुत संभव है। .

MongoDb 3.6 और नए के साथ, आप <के उपयोग का लाभ उठा सकते हैं कोड>$arrayToObject $replaceRoot के भीतर ऑपरेटर वांछित परिणाम प्राप्त करने के लिए पाइपलाइन।

पाइपलाइन में, <का लाभ उठाएं कोड>$cond $group<में ऑपरेटर /कोड> परम फ़ील्ड बूलियन मान के आधार पर गणनाओं का मूल्यांकन करने के लिए चरण, निम्न जैसा कुछ:

db.getCollection('patients').aggregate([ 
    { "$project": { "_id": 0 } },
    { "$project": { "data": { "$objectToArray": "$$ROOT" } } },
    { "$unwind": "$data" },
    { "$group": { 
        "_id": "$data.k", 
        "count": { 
            "$sum": {
                "$cond": [ "$data.v", 1, 0 ] 
            }
        } 
    } },
    { "$group": { 
        "_id": null, 
        "counts": { 
            "$push": { "k": "$_id", "v": "$count" } 
        } 
    } }, 
    { "$project": { 
        "data": { "$arrayToObject": "$counts" } 
    } }, 
    { "$replaceRoot": { "newRoot": "$data" } } 
])

MongoDB संस्करणों के लिए जिनके पास उपरोक्त के लिए समर्थन नहीं है $arrayToObject और $replaceRoot ऑपरेटरों, आपको रकम की गणना करते समय समूह पाइपलाइन में स्पष्ट रूप से फ़ील्ड निर्दिष्ट करने की आवश्यकता होगी:

db.getCollection('patients').aggregate([    
    { "$group": { 
        "_id": null,             
        "param1_count": {
            "$sum": {
                "$cond": [ "$param1", 1, 0 ] /* similar to "$cond": [ { "$eq": [ "$param1", true ] }, 1, 0 ] */
            }
        },
        "param2_count": {
            "$sum": {
                "$cond": [ "$param2", 1, 0 ]
            }
        },
        "param3_count": {
            "$sum": {
                "$cond": [ "$param3", 1, 0 ]
            }
        },
        "param4_count": {
            "$sum": {
                "$cond": [ "$param4", 1, 0 ]
            }
        } 
    } },
    { "$project": {
        "_id": 0,             
        "param_counts": {
            "param1": "$param1_count",
            "param2": "$param2_count",
            "param3": "$param3_count",
            "param4": "$param4_count"
        }
    } }
])



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मोंगोडब में इंडेक्स सुनिश्चित करें

  2. php7 . के लिए मैक ओएस 10.15 पर मोंगोडब स्थापित करें

  3. रेप्लिकासेट में MongoDB मल्टीपल मास्टर्स

  4. जावास्क्रिप्ट का उपयोग करके Azure फ़ंक्शंस के साथ डेटाबेस कनेक्शन का पुन:उपयोग करना

  5. नेवला में डेटाबेस कॉपी करें