MongoDB Shell จัดการตัวเลขเป็น Double (Float) โดยค่าเริ่มต้น
เมื่อพิมพ์ตัวเลขใน Mongo Shell เช่น var x = 10 จะถูกเก็บเป็น Double (64-bit float) ไม่ใช่ Integer หากต้องการให้เป็น Integer จริง ต้องระบุชนิดข้อมูลชัดเจน
ใช้ NumberInt() สำหรับ 32-bit Integer
> var integerArrayDemo = [
NumberInt("50"),
NumberInt("60"),
NumberInt("70"),
NumberInt("90"),
NumberInt("40")
];
แสดงผลด้วย printjson()
> printjson(integerArrayDemo);
[ NumberInt(50), NumberInt(60), NumberInt(70), NumberInt(90), NumberInt(40) ]
แสดงผลด้วย print()
> print(integerArrayDemo);
NumberInt(50),NumberInt(60),NumberInt(70),NumberInt(90),NumberInt(40)
ชนิดตัวเลขอื่นๆ ใน MongoDB
| Constructor | ชนิด | ขนาด | ช่วงค่า |
|---|---|---|---|
NumberInt() | Signed 32-bit Integer | 4 bytes | -2,147,483,648 ถึง 2,147,483,647 |
NumberLong() | Signed 64-bit Integer | 8 bytes | -9,223,372,036,854,775,808 ถึง 9,223,372,036,854,775,807 |
NumberDecimal() | 128-bit Decimal | 16 bytes | ความแม่นยำสูง สำหรับการเงิน |
ตัวอย่างการใช้ NumberLong
> var bigNum = NumberLong("9223372036854775807");
> printjson(bigNum);
NumberLong("9223372036854775807")
สรุป
- ตัวเลขธรรมดาใน Shell = Double (Float)
- ใช้
NumberInt("value")สำหรับ Integer 32-bit - ใช้
NumberLong("value")สำหรับ Integer 64-bit - ส่งค่าเป็น String เข้า Constructor เพื่อป้องกัน Precision Loss