Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

วิธี Insert 8-byte Integer (NumberLong) ลง MongoDB ผ่าน JavaScript Shell

NumberLong ใน MongoDB Shell

MongoDB ใช้ NumberLong สำหรับจำนวนเต็ม 64-bit (8-byte) เพราะ JavaScript Number เป็น 53-bit เท่านั้น (IEEE 754)

ไวยากรณ์

var variableName = { "fieldName": NumberLong("value") };

ตัวอย่าง

> var userDetail = { "userId": NumberLong("98686869") };
{ "userId": NumberLong(98686869) }

แสดงผล

> userDetail
{ "userId": NumberLong(98686869) }

> printjson(userDetail);
{ "userId": NumberLong(98686869) }

ทำไมต้อง NumberLong?

  • JavaScript Number: Safe Integer แค่ 53-bit (±9,007,199,254,740,991)
  • MongoDB 64-bit Integer: ต้องการความแม่นยำเต็ม 64-bit
  • ส่งเป็น String เข้า NumberLong() เพื่อไม่สูญเสีย Precision

ใน Node.js Driver (MongoDB)

const { Long } = require('mongodb');
const doc = { userId: Long.fromString('98686869') };

หมายเหตุ: ใน MongoDB 4.0+ Shell ใหม่ (mongosh) ใช้ Long() แทน NumberLong()