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

मोंगोडब कुल कई सरणियाँ

सबसे पहले आप एक फ़ील्ड जोड़ें voteType प्रत्येक वोट में। यह फ़ील्ड इसके प्रकार को इंगित करता है। इस फ़ील्ड के होने पर, आपको वोटों को दो अलग-अलग सरणियों में रखने की आवश्यकता नहीं है mlVoters और egVoters; आप इसके बजाय उन सरणियों को प्रति दस्तावेज़ एक सरणी में जोड़ सकते हैं, और बाद में आराम कर सकते हैं।

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

अंत में आप एक फ़ील्ड जोड़ते हैं totalCount अन्य दो गणनाओं के योग के रूप में।

db.documents.aggregate([
  {
    $addFields: {
      mlVoters: {
        $ifNull: [ "$mlVoters", []]
      },
      egVoters: {
        $ifNull: [ "$egVoters", []]
      }
    }
  },
  {
    $addFields: {
      "mlVoters.voteType": "ml",
      "egVoters.voteType": "eg"
    }
  },
  {
    $project: {
      voters: { $concatArrays: ["$mlVoters", "$egVoters"] }
    }
  },
  {
    $unwind: "$voters"
  },
  {
    $project: {
      email: "$voters.email",
      voteType: "$voters.voteType"
    }
  },
  {
    $group: {
      _id: "$email",
      mlCount: {
        $sum: {
          $cond: {
            "if": { $eq: ["$voteType", "ml"] },
            "then": 1,
            "else": 0
          }
        }
      },
      egCount: {
        $sum: {
          $cond: {
            "if": { $eq: ["$voteType", "eg"] },
            "then": 1,
            "else": 0
          }
        }
      }
    }
  },
  {
    $addFields: {
      totalCount: {
        $sum: ["$mlCount", "$egCount"]
      }
    }
  }
])



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. कैसे तिथि के आधार पर एकत्रीकरण ढांचे में एक पूर्ण टाइमस्टैम्प दिया जाता है?

  2. Node.js में नेवला के माध्यम से डॉट (।) का उपयोग करके एक क्वेरी कैसे करें और एक खाली सरणी कैसे जोड़ें

  3. NodeJS से MongoDB में सत्र कैसे स्टोर करें?

  4. संग्रह उल्का Mongo . के अंदर वस्तु के माध्यम से पुनरावृति कैसे करें

  5. $सप्ताह समारोह और एकत्रीकरण में सप्ताह का पहला दिन