MongoDB में NumberInt(): 32-बिट इंटीजर स्पष्ट रूप से निर्दिष्ट करना
MongoDB शेल में संख्यात्मक लिटरल डिफ़ॉल्ट रूप से 64-बिट फ्लोट (डबल) होते हैं। NumberInt() कंस्ट्रक्टर 32-बिट हस्ताक्षरित इंटीजर बनाने के लिए उपयोग किया जाता है, जो तुलना और इंडेक्स मिलान के लिए महत्वपूर्ण है जब संग्रहीत मान 32-बिट इंटीजर हों।
नमूना डेटा: NumberInt के साथ नेस्टेड आईडी
> db.demo357.insertOne({
"FirstName": "Chris", "Age": 21,
"details": {"studentDetails": {"id": NumberInt(101)}}
});
{ "acknowledged": true, "insertedId": ObjectId("5e568fa6f8647eb59e5620c9") }
> db.demo357.insertOne({
"FirstName": "David", "Age": 23,
"details": {"studentDetails": {"id": NumberInt(110)}}
});
{ "acknowledged": true, "insertedId": ObjectId("5e568fbaf8647eb59e5620ca") }
क्वेरी: NumberInt(110) द्वारा ढूंढना
> db.demo357.find({"details.studentDetails.id": NumberInt(110)});
परिणाम
{ "FirstName": "David", "Age": 23, "details": {"studentDetails": {"id": 110}} }
NumberInt(110) का उपयोग करके क्वेरी करने से सही मिलान होता है। यदि आप केवल 110 (डबल) उपयोग करते हैं, तो भी MongoDB 32-बिट इंटीजर से मिलान कर लेता है (प्रकार जबरदस्ती के कारण), लेकिन स्पष्ट NumberInt प्रकार सुरक्षा और स्पष्टता के लिए सर्वोत्तम अभ्यास है, विशेष रूप से ड्राइवर कोड में।