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

शर्त और समूहीकरण से मेल खाने वाले उप दस्तावेजों की संख्या के साथ एकत्र करें

आपको उत्तर को ठीक से पढ़ना चाहिए था, क्योंकि पहले से ही एक और वैकल्पिक सूची और स्पष्टीकरण था कि आपके द्वारा उपयोग किए जाने वाले अपेक्षित परिणाम से आप अलग क्यों होंगे।

इसके बजाय आप इसे चाहते हैं, जो संभावित एकाधिक "पास" या "असफल" का सम्मान करता है:

  Model.aggregate(
    [
      { "$sort": { "executionProject": 1, "runEndTime": 1 } },
      { "$group": {
        "_id": "$executionProject",
        "suiteList": { "$last": "$suiteList" },
        "runEndTime": { "$last": "$runEndTime" }
      }},
      { "$unwind": "$suiteList" },
      { "$group": {
        "_id": "$_id",
        "suite-pass": { 
          "$sum": {
            "$cond": [
              { "$eq": [ "$suiteList.suiteStatus", "PASS" ] },
              1,
              0
            ]
          }
        },
        "suite-fail": { 
          "$sum": {
            "$cond": [
              { "$eq": [ "$suiteList.suiteStatus", "FAIL" ] },
              1,
              0
            ]
          }
        },
        "runEndTime": {"$first": "$runEndTime"}
      }},
      { "$sort": { "runEndTime": 1 }}
    ],
    function(err,result) {

    }
  );

जो दृष्टिकोणों का एक "संयोजन" है। जैसा कि आप उम्मीद कर रहे थे, सबसे पहले रनटाइम द्वारा "आखिरी" प्राप्त करना है। अगला सरणी को तोड़ना है और इस बार वास्तव में पास या असफल होने की संभावित घटनाओं को "योग" करना है, बजाय इसके कि केवल 1 रिकॉर्ड करें सरणी में पास या असफल होने के लिए, वास्तविक "पास" या "असफल" की गणना की जाती है।

परिणामों के साथ:

{
        "_id" : "Project1",
        "suite-pass" : 0,
        "suite-fail" : 1,
        "runEndTime" : ISODate("2015-08-19T09:46:31.108Z")
}
{
        "_id" : "Project2",
        "suite-pass" : 2,
        "suite-fail" : 0,
        "runEndTime" : ISODate("2015-08-19T11:09:52.537Z")
}
{
        "_id" : "Project3",
        "suite-pass" : 0,
        "suite-fail" : 1,
        "runEndTime" : ISODate("2015-08-19T11:18:41.460Z")
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB ट्यूटोरियल:Scala . में MongoDB से कनेक्ट करना

  2. रेल 3:एक ही समय में सक्रिय रिकॉर्ड और मोंगोइड का उपयोग कैसे करें

  3. MongoDB असुरक्षा के स्तर और उनसे कैसे बचें

  4. किसी सरणी के कम से कम N तत्वों का मिलान शर्तों की सूची से करें

  5. नियमित अभिव्यक्ति का उपयोग कर सी # में मोंगोडीबी संग्रह से डेटा कैसे प्राप्त करें?