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

मोंगोडब, $sum शर्त के साथ

मोंगो दस्तावेज़ से $sum व्यवहार

हम $push . कर सकते हैं सभी क्षेत्र और लंबाई से सरणी, और तुलना करें count सरणी की लंबाई के साथ

डीबी.एन.एग्रीगेट(

    [ 
        {
            $group: {
                _id: { name: "$name" }, 
                count: { $sum: 1 }, 
                area : {$push : "$area"}, 
                length : {$push : "$length"} } 
        },
        {
            $project:{
                _id: "$_id",
                count: "$count",
                summarizedLength: { $cond : [ {$eq : [ "$count", {$size : "$length"} ]} , { $sum : ["$length"] }, "not all numbers" ] },
                summarizedArea: { $cond : [ {$eq : [ "$count", {$size : "$area"} ]} , { $sum : ["$area"] }, "not all numbers" ] },
            }
        }
    ] 
)

या, हम defined . की संख्या गिन सकते हैं कुल count . के साथ लंबाई और क्षेत्र , यदि मिलान की गणना की जाती है तो सभी संख्याएं कुछ अपरिभाषित हैं।

प्रकार की कड़ाई से जांच करने के लिए, यदि क्षेत्र और लंबाई में गैर-संख्यात्मक डेटा हो सकता है, तो undefined के बजाय हम $type कर सकते हैं जाँच करें

db.n.aggregate(
    [
        {
            $group: {
                _id: { name: "$name" },
                count: { $sum: 1 },
                areaCount : { $sum : { $cond : [ {$eq : [ "$area", undefined ]} , 0, 1 ] } },
                lengthCount : { $sum : { $cond : [ {$eq : [ "$length", undefined ]} , 0, 1 ] } },
                summarizedLength: { $sum: "$length"  },
                summarizedArea: { $sum: "$area"  }
            }
        },
        {
            $project : {
                _id : "$_id",
                count: "$count",
                summarizedLength: { $cond : [ {$eq : [ "$count", "$lengthCount" ]} , "$summarizedLength", "not all numbers" ] },
                summarizedArea: { $cond : [ {$eq : [ "$count", "$areaCount" ]} , "$summarizedArea", "not all numbers" ] },
            }
        }
    ]
).pretty()

आउटपुट

{
    "_id" : {
        "name" : "abc"
    },
    "count" : 2,
    "summarizedLength" : 30,
    "summarizedArea" : "not all numbers"
}



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB में Mongo Shell का उपयोग करके स्ट्रिंग को तिथि या ISODate में कनवर्ट करें

  2. कनेक्शन पर NodeJS + नेवला समयबाह्य

  3. स्प्रिंग डेटा और मोंगोडब - @ ट्रान्सएक्शनल के भीतर स्प्रिंग के साथ सरल रोल बैक

  4. संख्यात्मक संग्रह नाम निकालें

  5. $लुकअप खाली सरणी लौटा रहा है