MongoDB क्वेरी में JavaScript से ऑटोमेटिक कास्टिंग
MongoDB शेल में JavaScript एक्सप्रेशन का उपयोग करके क्वेरी में ऑटोमेटिक टाइप कास्टिंग कर सकते हैं।
सिंटैक्स
db.yourCollectionName.find("this.yourFieldName > yourValue");
उदाहरण: स्ट्रिंग के रूप में स्टोर संख्याओं की तुलना
> db.castingDemo.insertOne({"Amount":"200"});
{ "acknowledged" : true, "insertedId" : ObjectId("5c947e874cf1f7a64fa4df42") }
> db.castingDemo.insertOne({"Amount":"100"});
{ "acknowledged" : true, "insertedId" : ObjectId("5c947e8e4cf1f7a64fa4df43") }
> db.castingDemo.insertOne({"Amount":"110"});
{ "acknowledged" : true, "insertedId" : ObjectId("5c947e944cf1f7a64fa4df44") }
> db.castingDemo.insertOne({"Amount":"95"});
{ "acknowledged" : true, "insertedId" : ObjectId("5c947e9d4cf1f7a64fa4df45") }
> db.castingDemo.insertOne({"Amount":"85"});
{ "acknowledged" : true, "insertedId" : ObjectId("5c947ea44cf1f7a64fa4df46") }
> db.castingDemo.insertOne({"Amount":"75"});
{ "acknowledged" : true, "insertedId" : ObjectId("5c947ebd4cf1f7a64fa4df47") }
सभी दस्तावेज़ (Amount स्ट्रिंग के रूप में स्टोर है):
> db.castingDemo.find().pretty();
JavaScript एक्सप्रेशन से क्वेरी: Amount > 85
> db.castingDemo.find("this.Amount > 85");व्याख्या:
"this.Amount > 85"एक JavaScript स्ट्रिंग है जिसे MongoDB प्रत्येक दस्तावेज़ के लिए मूल्यांकन करता है। यह स्ट्रिंग "200", "100" आदि को स्वचालित रूप से संख्या में बदलकर तुलना करता है।चेतावनी: JavaScript क्वेरी (
$whereया स्ट्रिंग क्वेरी) इंडेक्स का उपयोग नहीं कर सकतीं और बड़े कलेक्शन पर धीमी होती हैं। प्रोडक्शन में उचित डेटा टाइप्स (संख्या के लिए Number) का उपयोग करें।