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

Mongo Shell ใช้ตัวเลขเป็น Float โดยค่าเริ่มต้น? วิธีระบุ Integer ให้ชัดเจน

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 Integer4 bytes-2,147,483,648 ถึง 2,147,483,647
NumberLong()Signed 64-bit Integer8 bytes-9,223,372,036,854,775,808 ถึง 9,223,372,036,854,775,807
NumberDecimal()128-bit Decimal16 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