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

MongoDB में ग्रुप बाय कंडीशन

एकत्रीकरण ढांचा वही है जो आप चाहते हैं:

db.collection.aggregate([
    { "$group": {
        "_id": {
            "year": { "$year": "$utc_timestamp" },
            "month": { "$month": "$utc_timestamp" },
            "day": { "$dayOfMonth": "$utc_timestamp" },
        },
        "defects": {
            "$sum": { "$cond": [
                { "$eq": [ "$status", "defect" ] },
                1,
                0
            ]}
        },
        "totalCount": { "$sum": 1 }
    }},
    { "$project": {
        "defect_rate": {
            "$cond": [
                { "$eq": [ "$defects", 0 ] },
                0,
                { "$divide": [ "$defects", "$totalCount" ] }
            ]
        }
    }}
])

तो पहले आप दिनांक एकत्रीकरण ऑपरेटरों का उपयोग करके दिन पर समूह बनाते हैं और दिए गए दिन पर कुल आइटम प्राप्त करते हैं। $cond . का उपयोग ऑपरेटर यहां निर्धारित करता है कि "स्थिति" वास्तव में एक दोष है या नहीं और परिणाम एक सशर्त $sum है जहां केवल "दोष" मानों की गणना की जाती है।

एक बार उन्हें प्रतिदिन समूहीकृत करने के बाद आप बस $divide परिणाम, $cond . के साथ एक और जांच के साथ यह सुनिश्चित करने के लिए कि आप शून्य से विभाजित नहीं कर रहे हैं।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. शुरुआती के लिए MongoDB के साथ पायथन डेटाबेस प्रोग्रामिंग

  2. Node.js . में स्व-हस्ताक्षरित प्रमाणपत्रों के साथ MongoDB SSL

  3. मोंगोडब में एक सरणी में कई तत्वों को अपडेट करें

  4. mongoengine - एंबेडेड डॉक्यूमेंटफिल्ड की लिस्टफिल्ड पर क्वेरी

  5. DigitalOcean पर MongoDB को होस्ट करने का सबसे अच्छा तरीका