MongoDB में 8-बाइट इंटीजर (NumberLong) इन्सर्ट करना
MongoDB शेल में 64-बिट इंटीजर्स के लिए NumberLong क्लास का उपयोग करें। JavaScript का नंबर टाइप 53-बिट तक सटीक होता है (Number.MAX_SAFE_INTEGER), इसलिए बड़ी संख्याओं के लिए NumberLong जरूरी है।
सिंटैक्स
var variableName = {"fieldName": new NumberLong("value")};
उदाहरण: 8-बाइट इंटीजर इन्सर्ट करना
> userDetail = {"userId": new NumberLong("98686869")};
{ "userId": NumberLong(98686869) }
वेरिएबल से डिस्प्ले करना
> userDetail
{ "userId": NumberLong(98686869) }
printjson() के साथ डिस्प्ले
> printjson(userDetail);
{ "userId": NumberLong(98686869) }
NumberLong के बिना समस्या
> var bad = {"id": 98686869123456789};
> printjson(bad);
{ "id": 98686869123456790 } // प्रिसिजन लॉस! (अंतिम अंक गलत)
NumberLong के साथ सही
> var good = {"id": new NumberLong("98686869123456789")};
> printjson(good);
{ "id": NumberLong(98686869123456789) } // सही!
महत्वपूर्ण बिंदु
- स्ट्रिंग में पास करें:
new NumberLong("123...")- नंबर लिटरल से प्रिसिजन लॉस होता है NumberLongकेवल MongoDB शेल में उपलब्ध (Node.js ड्राइवर मेंLongउपयोग करें)- तुलना/सॉर्टिंग सही काम करता है
NumberLong("0")सेNumberLong("18446744073709551615")तक (अनसाइन्ड 64-बिट)
Node.js ड्राइवर में उपयोग
<script>
const { Long } = require('mongodb');
// Long.fromString या Long.fromNumber
var doc = { userId: Long.fromString("98686869123456789") };
await collection.insertOne(doc);
</script>
सामान्य ऑपरेशन्स
> var x = new NumberLong("100");
> var y = new NumberLong("200");
> x.add(y) // जोड़: NumberLong(300)
> x.subtract(y) // घटाव: NumberLong(-100)
> x.multiply(y) // गुणा: NumberLong(20000)
> x.div(y) // भाग: NumberLong(0)
> x.toString() // "100"