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

मोंगोडीबी $abs

MongoDB में, $abs एग्रीगेशन पाइपलाइन ऑपरेटर किसी संख्या का निरपेक्ष मान लौटाता है।

उदाहरण

मान लीजिए हमारे पास data . नामक संग्रह है निम्नलिखित दस्तावेज़ के साथ:

{ "_id" : 1, "a" : 20, "b" : -20 }

हम $abs . का उपयोग कर सकते हैं ऑपरेटर a . के निरपेक्ष मान लौटाने के लिए और b फ़ील्ड।

db.data.aggregate(
  [
    { $project: { 
        _id: 0,
        a: { $abs: [ "$a" ] },
        b: { $abs: [ "$b" ] }
      }
    }
  ]
)

परिणाम:

{ "a" : 20, "b" : 20 }

निरपेक्ष मानों में कोई चिह्न शामिल नहीं है, और इसलिए हम देख सकते हैं कि b से ऋणात्मक चिह्न हटा दिया गया है मूल्य।

आप किसी संख्या के निरपेक्ष मान को संख्या रेखा पर उस संख्या की शून्य से दूरी मान सकते हैं।

शून्य मान

शून्य मान null लौटाते हैं $abs . का उपयोग करते समय ऑपरेटर।

मान लीजिए हम अपने संग्रह में निम्नलिखित दस्तावेज़ जोड़ते हैं:

{ "_id" : 2, "a" : 0, "b" : null }

चलिए $abs चलाते हैं उस दस्तावेज़ के विरुद्ध ऑपरेटर:

db.data.aggregate(
  [
    { $match: { _id: 2 } },
    { $project: { 
        _id: 0,
        a: { $abs: [ "$a" ] },
        b: { $abs: [ "$b" ] }
      }
    }
  ]
)

परिणाम:

{ "a" : 0, "b" : null }

हम देख सकते हैं कि b null . को हल किया गया .

हम यह भी देख सकते हैं कि 0 0 . का समाधान करता है ।

NaN मान

अगर तर्क NaN . का समाधान करता है , $abs रिटर्न NaN

उदाहरण:

db.data.aggregate(
  [
    { $match: { _id: 2 } },
    { $project: { 
        _id: 0,
        a: { $abs: [ "$a" ] },
        b: { $abs: [ 1 * "g" ] }
      }
    }
  ]
)

परिणाम:

{ "a" : 0, "b" : NaN }

इस मामले में मैंने एक संख्या को एक स्ट्रिंग से गुणा करने का प्रयास किया, जिसके परिणामस्वरूप NaN लौटाया जा रहा है।

गैर-मौजूद फ़ील्ड

अगर $abs ऑपरेटर को उस फ़ील्ड के विरुद्ध लागू किया जाता है जो मौजूद नहीं है, null लौटा दिया गया है।

उदाहरण:

db.data.aggregate(
  [
    { $match: { _id: 2 } },
    { $project: { 
        _id: 0,
        c: { $abs: [ "$c" ] }
      }
    }
  ]
)

परिणाम:

{ "c" : null }

अन्य ऑपरेटरों के साथ संयुक्त

इस उदाहरण में मैं $abs . को मिलाता हूं $subtract . के साथ a . फ़ील्ड के बीच अंतर के परिमाण की गणना करने के लिए और b :

db.data.aggregate(
  [
    { $match: { _id: 1 } },
    { $project: { 
        _id: 0,
        a: 1,
        b: 1,
        result: { 
          $abs: { 
            $subtract: [ "$a", "$b" ] 
            }
        }
      }
    }
  ]
)

परिणाम:

{ "a" : 20, "b" : -20, "result" : 40 }


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मनमाना गहराई पर MongoDB फ़ील्ड नाम कैसे खोजें

  2. मोंगोडीबी $stdDevSamp

  3. MongoDB पर बिल्डिंग इंडेक्स के खतरे

  4. Mongoose स्कीमा में अनेक मानों का उपयोग करने वाले अद्वितीय दस्तावेज़

  5. नेवला, आबादी वाले क्षेत्र के आधार पर क्वेरी छाँटें