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

यदि कोई परिणाम नहीं है तो MongoDB 0 की कुल वापसी संख्या है

अगर मैं सही ढंग से समझता हूं कि आप क्या चाहते हैं, तो आप इसे आजमा सकते हैं:

db.builds.aggregate([
    { $project: 
        { 
            time: 1,
            projectedData: { $ifNull: ['$data.buildResult', 'none'] } 
        } 
    },

    { $group: { 
        _id: { 
            month: { $month: "$time" },
            day: { $dayOfMonth: "$time" },
            year: { $year: "$time" }, 
            buildResult: "$projectedData"
        },
        count: { $sum: { $cond: [ { $eq: [ "$projectedData", "none" ] }, 0, 1 ] } }
    } },

    { $sort: { "_id.year": 1, "_id.month": 1, "_id.day": 1 } }
])

अपडेट करें:
आप आउटपुट से अधिक दस्तावेज़ प्राप्त करना चाहते हैं जो इनपुट में हैं, यह केवल unwind के साथ ही संभव है ऑपरेटर जो सरणियों के साथ काम करता है, लेकिन आपके पास कोई सरणियाँ नहीं हैं, इसलिए जैसा कि मुझे पता है कि आपके मामले में अधिक दस्तावेज़ प्राप्त करना असंभव है। तो आपको किसी अन्य प्रकार के निर्माण परिणाम के लिए 0 गणना के साथ मौजूदा तिथियों के लिए नया डेटा बनाने के लिए क्वेरी परिणाम के बाद कुछ तर्क जोड़ना चाहिए ...




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Node.js + Mongoose स्थानीय रूप से काम करता है, लेकिन Heroku पर नहीं

  2. मोंगोडब एक संग्रह से अन्य संग्रह में सभी क्षेत्रों में फ़ील्ड पर रेगेक्स जांचें

  3. Meteor.js और नेवला संगतता

  4. टेस्टकंटेनर्स + क्वार्कस + मोंगोडीबी के साथ एकीकरण परीक्षण

  5. मेरे MongooseJS ObjectIds समानता परीक्षण में विफल क्यों होते हैं?