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

MongoDB $radiansToDegrees

MongoDB में, $radiansToDegrees एग्रीगेशन पाइपलाइन ऑपरेटर रेडियन में मापे गए इनपुट मान को डिग्री में बदलता है।

$radiansToDegrees किसी भी मान्य व्यंजक को स्वीकार करता है जो किसी संख्या का समाधान करता है।

$radiansToDegrees ऑपरेटर को MongoDB 4.2 में पेश किया गया था।

उदाहरण

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

{ "_id" : 1, "data" : 0.5 }

और मान लेते हैं कि data . का मान फ़ील्ड रेडियन में है (अर्थात 0.5 रेडियन)।

हम $radiansToDegrees . का उपयोग कर सकते हैं data को बदलने के लिए ऑपरेटर क्षेत्र से डिग्री:

db.test.aggregate(
  [
    { $match: { _id: 1 } },
    { $project: { 
        _id: 0,
        radians: "$data",
        degrees: { $radiansToDegrees: "$data" }
      }
    }
  ]
)

परिणाम:

{ "radians" : 0.5, "degrees" : 28.64788975654116 }

डिफ़ॉल्ट रूप से, $radiansToDegrees ऑपरेटर मानों को double . के रूप में लौटाता है , लेकिन यह 128-बिट दशमलव के रूप में भी मान लौटा सकता है, जब तक कि व्यंजक 128-बिट दशमलव मान पर हल हो जाता है।

128-बिट दशमलव मान

अगर एक्सप्रेशन $radiansToDegrees . को दिया गया है 128-बिट दशमलव है, तो परिणाम 128-बिट दशमलव में लौटा दिया जाता है।

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

{ "_id" : 2, "data" : NumberDecimal("0.1301023541559787031443874490659") }

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

db.test.aggregate(
  [
    { $match: { _id: 2 } },
    { $project: { 
        _id: 0,
        radians: "$data",
        degrees: { $radiansToDegrees: "$data" }
      }
    }
  ]
).pretty()

परिणाम:

{
	"radians" : NumberDecimal("0.1301023541559787031443874490659"),
	"degrees" : NumberDecimal("7.454315797853905125952127312900524")
}

आउटपुट 128-बिट दशमलव है।

शून्य मान

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

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

{ "_id" : 3, "data" : null }

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

db.test.aggregate(
  [
    { $match: { _id: 3 } },
    { $project: { 
        _id: 0,
        degrees: { $radiansToDegrees: "$data" }
      }
    }
  ]
)

परिणाम:

{ "degrees" : null }

हम देख सकते हैं कि परिणाम null है .

NaN मान

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

उदाहरण:

db.test.aggregate(
  [
    { $match: { _id: 3 } },
    { $project: { 
        _id: 0,
        degrees: { $radiansToDegrees: 0 * "$data" }
      }
    }
  ]
)

परिणाम:

{ "degrees" : NaN }

इन्फिनिटी

अगर तर्क Infinity . का समाधान करता है या -Infinity , $radiansToDegrees ऑपरेटर रिटर्न Infinity

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

{ "_id" : 4, "data" : Infinity }

चलिए $radiansToDegrees चलाते हैं डेटा फ़ील्ड के विरुद्ध:

db.test.aggregate(
  [
    { $match: { _id: 4 } },
    { $project: { 
        _id: 0,
        degrees: { $radiansToDegrees: "$data" }
      }
    }
  ]
)

परिणाम:

{ "degrees" : Infinity }

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

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

उदाहरण:

db.test.aggregate(
  [
    { $match: { _id: 4 } },
    { $project: { 
        _id: 0,
        degrees: { $radiansToDegrees: "$name" }
      }
    }
  ]
)

परिणाम:

{ "degrees" : null }

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

कुछ एकत्रीकरण पाइपलाइन ऑपरेटर अपना परिणाम रेडियन में लौटाते हैं। आप $radiansToDegrees . को मिला सकते हैं ऐसे ऑपरेटरों के साथ परिणाम को डिग्री में वापस करने के लिए।

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

{ "_id" : 1, "data" : 0.5 }

और मान लीजिए कि हम $asin . का उपयोग करना चाहते हैं ऑपरेटर data . की आर्क्साइन वापस करने के लिए खेत। $asin ऑपरेटर अपना परिणाम रेडियन में लौटाता है, लेकिन मान लीजिए कि हम परिणाम को इसके बजाय डिग्री में चाहते हैं।

इस मामले में, हम निम्न कार्य कर सकते हैं:

db.test.aggregate(
  [
    { $match: { _id: 1 } },
    { $project: { 
        _id: 0,
        radians: { $asin: "$data" },
        degrees: { $radiansToDegrees: { $asin: "$data" } }
      }
    }
  ]
)

परिणाम:

{ "radians" : 0.5235987755982988, "degrees" : 29.999999999999996 }

इस उदाहरण में, पहला फ़ील्ड परिणाम को रेडियन में प्रस्तुत करता है, और दूसरा फ़ील्ड इसे डिग्री में प्रस्तुत करता है।


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Node.js Mongoose.js स्ट्रिंग ObjectId फ़ंक्शन के लिए

  2. नोएसक्यूएल के लिए मामलों का प्रयोग करें

  3. स्प्रिंग डेटा MongoDB लेनदेन

  4. MongoDB रेंज पेजिनेशन

  5. NoSQL डेटाबेस की लड़ाई - MongoDB और Oracle NoSQL की तुलना करना