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

मोंगोडीबी $sqrt

MongoDB में, $sqrt एग्रीगेशन पाइपलाइन ऑपरेटर एक धनात्मक संख्या के वर्गमूल की गणना करता है और परिणाम को दोगुने के रूप में लौटाता है।

$sqrt किसी भी मान्य व्यंजक को स्वीकार करता है जो एक गैर-ऋणात्मक संख्या का समाधान करता है।

उदाहरण

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

{ "_id" : 1, "data" : 100 }
{ "_id" : 2, "data" : 250 }

हम $sqrt . का उपयोग कर सकते हैं ऑपरेटर data का वर्गमूल लौटाने के लिए फ़ील्ड:

db.test.aggregate(
  [
    { $match: { _id: { $in: [ 1, 2 ] } } },
    { $project: { 
        squareRoot: { $sqrt: "$data" }
      }
    }
  ]
)

परिणाम:

{ "_id" : 1, "squareRoot" : 10 }
{ "_id" : 2, "squareRoot" : 15.811388300841896 }

नकारात्मक मान

$sqrt ऑपरेटर केवल गैर-ऋणात्मक संख्या स्वीकार करता है।

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

{ "_id" : 3, "data" : -100 }

आइए $sqrt . लागू करें उस दस्तावेज़ के विरुद्ध ऑपरेटर:

db.test.aggregate(
  [
    { $match: { _id: { $in: [ 3 ] } } },
    { $project: { 
        squareRoot: { $sqrt: "$data" }
      }
    }
  ]
)

परिणाम:

uncaught exception: Error: command failed: {
	"ok" : 0,
	"errmsg" : "$sqrt's argument must be greater than or equal to 0",
	"code" : 28714,
	"codeName" : "Location28714"
} : aggregate failed :
[email protected]/mongo/shell/utils.js:25:13
[email protected]/mongo/shell/assert.js:18:14
[email protected]/mongo/shell/assert.js:618:17
[email protected]/mongo/shell/assert.js:708:16
[email protected]/mongo/shell/db.js:266:5
[email protected]/mongo/shell/collection.js:1046:12
@(shell):1:1

यह त्रुटि हमें बताती है कि $sqrt का तर्क 0 से बड़ा या उसके बराबर होना चाहिए

शून्य मान

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

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

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

आइए $sqrt . लागू करें उस दस्तावेज़ के विरुद्ध ऑपरेटर:

db.test.aggregate(
  [
    { $match: { _id: { $in: [ 4 ] } } },
    { $project: { 
        squareRoot: { $sqrt: "$data" }
      }
    }
  ]
)

परिणाम:

{ "_id" : 4, "squareRoot" : null }

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

NaN मान

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

उदाहरण:

db.test.aggregate(
  [
    { $match: { _id: 1 } },
    { $project: { 
        squareRoot: { $sqrt: "$data" * 1 }
      }
    }
  ]
)

परिणाम:

{ "_id" : 1, "squareRoot" : NaN }

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

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

उदाहरण:

db.test.aggregate(
  [
    { $match: { _id: 1 } },
    { $project: { 
        squareRoot: { $sqrt: "$age" }
      }
    }
  ]
)

परिणाम:

{ "_id" : 1, "squareRoot" : null }

  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. हडूप मानचित्र/घटाएं बनाम अंतर्निर्मित मानचित्र/घटाना

  2. नेवला :मॉडलों की एक सरणी पर लूप करके डेटा खोजें

  3. जांच कर रहा है कि मोंगोडब में कोई इंडेक्स मौजूद है या नहीं

  4. आपकी MongoDB सुरक्षा में सुधार करने के लिए 10 युक्तियाँ

  5. Node.js - एकाधिक async कॉल की प्रतीक्षा करें