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

मोंगो आयु समूह एकत्रीकरण

आप सही जगह पर थे, लेकिन $cond तीन तर्कों की आवश्यकता है (मूल्यांकन, सही परिणाम और गलत परिणाम होने के नाते) आपको इन कार्यों को "घोंसला" करने की आवश्यकता है, जो प्रत्येक बाद के $cond false के रूप में स्थि‍ति। तो यहां आपका सिंटैक्स थोड़ा हटकर है।

आप इसे केवल $group एक अलग $project . उदाहरण के तौर पर आप जो दस्तावेज़ संरचना देते हैं, उसके आधार पर आप इस तरह बनेंगे:

$pipeline = array(
  array(
    '$group' => array(
      '_id' => array(
        '$cond' =>  array(
          array('$lt' => array( '$age', 18 )),
          'age_0_17',
          array(
            '$cond' => array(
              array( '$lte' => array( '$age', 25 )),
              'age_18_25',
              array(
                '$cond' => array(
                  array( '$lte' => array ( '$age', 32 )),
                  'age_26_32',
                  'age_Above_32'
                )
              )
            )
          )
        )
      ),
      'count' => array( '$sum' => 1 )
    )
  )
);

यह भी ध्यान दें कि तार्किक तुलना ऑपरेटर जैसे $lt इन चरणों में उनके क्वेरी समकक्षों के लिए अलग तरह से काम करते हैं। वे स्वयं परीक्षण और तुलना करने के लिए मूल्यों के रूप में तर्कों की एक सरणी लेते हैं। वे true/false लौटाते हैं उस तुलना के आधार पर, जो कि $cond . के पहले तर्क के लिए आवश्यक है ।

एक json_encode होना हमेशा आसान होता है कहीं न कहीं आप पाइपलाइन प्रश्नों के रूप को डिबग कर रहे हैं, क्योंकि JSON उदाहरणों का सामान्य दायरा होगा:

echo json_encode( $pipeline, JSON_PRETTY_PRINT ) . "\n";

जो सामान्य JSON संरचना उत्पन्न करता है:

[
    { "$group": {
        "_id": { 
            "$cond":[
                { "$lt":["$age",18] },
                "age_0_17",
                { "$cond":[
                    { "$lte":["$age",25] },
                    "age_18_25",
                    { "$cond":[
                        { "$lte":["$age",32] },
                        "age_26_32",
                        "age_Above_32"
                    ]}
                ]}
            ]
        },
        "count":{ "$sum": 1 }
    }}
]



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. आधिकारिक सी # ड्राइवर का उपयोग कर मोंगो डीबी में अप्सर्टिंग

  2. मैंगो डीबी शुरू नहीं कर सकता, अपवाद को सुन सकते हैं

  3. MongoDB अपरिभाषित बनाम अशक्त के बीच अंतर करता है

  4. mongodb-10gen स्थापित करें apt-get . के साथ विफल

  5. दोहराव वाली चीजें करने वाली एकाधिक नोड प्रक्रियाओं से कैसे बचें?